280 likes | 412 Vues
Dive into the fundamentals of C# programming with this comprehensive guide covering data types, flow control, and object-oriented concepts. Learn about value and reference types, conditional statements like if and switch, various loop structures including for and foreach, and the use of enumerations and namespaces. Explore class and struct definitions, data members, method implementation, and the importance of constructors and destructors. This guide is essential for beginners looking to grasp the foundational elements of C# development.
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