itf11006.net the basics. data types – value types – reference types flow control – conditional...

28
ITF11006 .NET The Basics

Upload: kelly-bailey

Post on 13-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

ITF11006 .NET

The Basics

Page 2: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

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

Page 3: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Variables/Constants

• Syntax[modifier] type identifier [= expression];

• Scope

– Class/Block

• Constants[modifier] const type identifier [= constant-expression];

• Type Inferencevar identifier [= expression];

Page 4: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Predefined Data Types

• Value Types

• Reference Types

Page 5: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Predefined Data Types

• Value Types

– Integer Types

– Floating Point Types

– Decimal Type

– Boolean Type

– Character Type

Page 6: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Integer Types

C# data type Description Class name Range

sbyte A 8-bit signed integer. System.SByte -128:127

short A 16-bit signed integer. System.Int16 -32.768: 32.767

int A 32-bit signed integer. System.Int32 -2.147.483.648: 2.147.483.647

long A 64-bit signed integer. System.Int64 -9.223.372.036.854.775.808: 9.223.372.036.854.775.807

byte An 8-bit unsigned integer. System.Byte 0:255

ushort A 16-bit unsigned integer. System.UInt16 0:65535

uint A 32-bit unsigned integer. System.UInt32 0:4.294.967.295

ulong A 64-bit unsigned integer. System.UInt64 0:18.446.744.073.709.551.615

Page 7: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Floating Point

C# data type Description Class name Significant fig. Range

float A single-precision (32-bit) floating-point number.

System.Single 7 +1.5x10-45 to +3.4x1038

double A double-precision (64-bit) floating-point number.

System.Double 15/16 +5.0x10-324 to +1.7x10308

Page 8: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Decimal Type

C# data type Description Class name Significant fig. Range

decimal A 96-bit decimal value.(128 bit space!)

System.Decimal 28 +1.0x10-28 to +7.9x1028

Page 9: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Boolean Type

C# data type Description Class name Range

bool Logical true or false System.Boolean true or false

Page 10: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Character TypeC# data type Description Class name

char 16 bits. Represents a single (Unicode) character System.Char

Page 11: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Nullable Types (http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=VS.100).aspx)

• T? orSystem.Nullable(Of T)

• Ordinary type plus null

Page 12: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Predefined Reference Types

• Object• String

Page 13: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Flow Control• Conditional

– if– switch

• Loop– for– while– do..while– foreach

• Jump– goto– break– continue– return

Page 14: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Conditional Statements

• if if (expression) statement1 [else statement2]

• switch switch (expression){

case constant-expression:

statement

jump-statement

[default:

statement

jump-statement]

}

Page 15: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Loops

• for for ([initializers]; [expression]; [iterators]) statement

• while while (expression) statement

• do..while do statement while (expression);

• foreach foreach (type identifier in expression) statement

Page 16: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Jump Statements

• goto• break• continue• return• (throw)

Page 17: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Enumerations

• enum[modifiers] enum identifier [:base-type]

{enumerator-list} • Inherits from System.Enum• Flags Attribute• Use enumerations

Page 18: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Namespaces

• Logical grouping of functionality• <company>.<technology/sw package>• Using directive

Page 19: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Class (/Struct)

• Data Members– Fields– Constants– Events

• Function Members– Methods– Properties– Constructor– Destructor– Operators– Indexers

Page 20: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

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

Page 21: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Properties

• syntax[modifiers] type identifier {

set {accessor-body} get {accessor-body}

}

• Auto-Implementedpublic string Age(get; private set;)

• Choosing Between Properties and Methodshttp://msdn.microsoft.com/en-us/library/ms229054.aspx

Page 22: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Construction and Disposal

• Constructors– Instance– Class– Calling

• Destructor– Why– How (pattern)

• Dispose vs. Close

Page 23: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

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());

Page 24: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Indexerspublic char this[int index]

{

get

{

...

}

set

{

...

}

}

Page 25: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Instance vs. Class Level

• Static• this vs. class name

Page 26: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Struct

• No inheritance (almost)• Constructors• Fields are sometimes declared public!• Structs are value types

Page 27: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

Struct vs. class

• Footprint• Performance

Page 28: ITF11006.NET The Basics. Data Types – Value Types – Reference Types Flow Control – Conditional – Loop Miscellaneous – Enumerations – Namespaces Class

object (System.Object)

• Methods

• Comparing for Equality– Reference Types– Value Types

Method Access

string ToString() public virtual

int GetHashCode() public virtual

bool Equals(object obj) public virtual

bool Equals(object objA, object objB) public static

bool ReferenceEquals(object objA, object objB) public static

Type GetType() public

object MemberwiseClone() protected

void Finalize() protected virtual