280 likes | 401 Views
ITF11006 .NET. The Basics. The Basics. Data Types Value Types Reference Types Flow Control Conditional Loop Miscellaneous Enumerations Namespaces Class / Struct Data Members Functional Mem Base Classes System.Object System.String. Variables/Constants.
E N D
ITF11006 .NET The Basics
The Basics • Data Types • Value Types • Reference Types • Flow Control • Conditional • Loop • Miscellaneous • Enumerations • Namespaces • Class / Struct • Data Members • Functional Mem • Base Classes • System.Object • System.String
Variables/Constants • Syntax[modifier] type identifier [= expression]; • Scope • Class/Block • Constants[modifier] const type identifier [= constant-expression]; • Type Inferencevar identifier [= expression];
Predefined Data Types • Value Types • Reference Types
Predefined Data Types • Value Types • Integer Types • Floating Point Types • Decimal Type • Boolean Type • Character Type
Nullable Types (http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=VS.100).aspx) • T? orSystem.Nullable(Of T) • Ordinary type plus null
Predefined Reference Types • Object • String
Flow Control • Conditional • if • switch • Loop • for • while • do..while • foreach • Jump • goto • break • continue • return
Conditional Statements • if if (expression) statement1 [else statement2] • switchswitch (expression) { case constant-expression: statement jump-statement [default: statement jump-statement] }
Loops • forfor ([initializers]; [expression]; [iterators]) statement • whilewhile (expression) statement • do..whiledo statement while (expression); • foreachforeach (typeidentifier in expression) statement
Jump Statements • goto • break • continue • return • (throw)
Enumerations • enum[modifiers] enum identifier [:base-type]{enumerator-list} • Inherits from System.Enum • Flags Attribute • Use enumerations
Namespaces • Logical grouping of functionality • <company>.<technology/sw package> • Using directive
Class (/Struct) • Data Members • Fields • Constants • Events • Function Members • Methods • Properties • Constructor • Destructor • Operators • Indexers
Methods • syntax[modifiers] return-type method-name([formal-parameter-list]) { statement(s)} • Named Argumentsstring FullName(string firstName, string lastName)…FullName(“Ole”, “Olsen”);FullName(lastName: “Olsen”, firstName: “Ole”); • Optional Arguments • Method Overloading
Properties • syntax[modifiers] type identifier{ set {accessor-body} get {accessor-body} } • Auto-Implementedpublic string Age(get; private set;) • Choosing Between Properties and Methods http://msdn.microsoft.com/en-us/library/ms229054.aspx
Construction and Disposal • Constructors • Instance • Class • Calling • Destructor • Why • How (pattern) • Dispose vs. Close
Operators • Operator Overloading public static Vector operator * (double lhs, Vector rhs) { return new Vector(lhs * rhs.x, lhs * rhs.y, lhs * rhs.z); } public static Vector operator * (Vector lhs, double rhs) { return rhs * lhs; } Console.WriteLine("vect2 * 2 = " + ( vect2 * 2).ToString());
Indexers public char this[int index] { get { ... } set { ... } }
Instance vs. Class Level • Static • this vs. class name
Struct • No inheritance (almost) • Constructors • Fields are sometimes declared public! • Structs are value types
Struct vs. class • Footprint • Performance
object (System.Object) • Methods • Comparing for Equality • Reference Types • Value Types