330 likes | 491 Views
Value Types Variables. Agenda. CTS – Common Type System Naming Variables Using Built-in data types Creating User Defined Data Types Converting Data Types. Agenda. CTS – Common Type System Naming Variables Using Built-in data types Creating User Defined Data Types
E N D
Agenda • CTS – Common Type System • Naming Variables • Using Built-in data types • Creating User Defined Data Types • Converting Data Types
Agenda • CTS – Common Type System • Naming Variables • Using Built-in data types • Creating User Defined Data Types • Converting Data Types
CTS – Common Type System • CTS • מפרט טכני פורמאלי ומחייב, המכיל אוסף של הגדרות, הנחיות וכללים, המתארים את אופן העבודה עם טיפוסים ב- .NET Framework • כל שפות ה- .NET חולקות את אותם הכללים המחייבים המוגדרים ב – CTS . • בעולם ה- .NET הטיפוסים מסווגים לשתי קטגוריות : Value Typesו- Reference Types.
CTS – Common Type System Value Type • מכילים ישירות את הערכים. • לכל משתנה יש העתק פרטי של הערך. • פעולה על אחד המשתנים אינה משפיעה על האחרים. • מוקצים ב- Stack Segment Reference Type • מכיל ייחוס למידע. • שני ייחוסים או יותר יכולים להתייחס לאותו פריט המידע. • פעולה על ייחוס אחד יכולה להשפיע על ייחוסים אחרים. • מוקצה ב- Managed Heap . כל טיפוס Structure או Enumeration הוא Value Type , כל טיפוס Class הוא Reference Type .
CTS – Common Type System Built-in Value Type - int, float, char, short ... User Defined Type - enum, structure
CTS – Common Type System Simple Types •הטיפוסים הפשוטים ב- #C הם מופעים של Structures המוגדרים ב- Framework . • הם מגדירים מתודות, ולכן קשה לכנותם טיפוסים "פרימיטיביים". • #C מגדירה כינויים לאותם טיפוסים פשוטים. • ניתן להגדיר מופעים באמצעות שם המחלקה או באמצעות הכינוי, ההגדרות שקולות. • הם תמיד Value Types. לדוגמה:
CTS – Common Type System • כל הטיפוסים הפשוטים יורשים את ValueType
CTS – Common Type System • ניתן להגדירם באמצעות שם המחלקה או באמצעות הכינוי: הגדרה באמצעות הכינוי : int num = 16; float fnum = 13.34f; byte small_num = 12; או באמצעות שם המבנה: System.Int32 num = 16; System.Single fnum = 13.34f; System.Byte small_num = 12; ההגדרות שקולות.
CTS – Common Type System • לטיפוסים הפשוטים מוגדרות מתודות : int num = 34; string str = num.ToString(); … string str = “1234”; int num = int.Parse(str);
Agenda • CTS – Common Type System • Naming Variables • Using Built-in data types • Creating User Defined Data Types • Converting Data Types
num _num NUM cust customer 22catchcatch22 Naming Variables חוקים במתן שמות: • מותר להשתמש באותיות, ספרות וקו תחתי . • שם משתנה אינו יכול להתחיל בסיפרה. • חייב להיות ייחודי במתודה בה המשתנה מוגדר. • אסור להשתמש במילים שמורות. מוסכמות למתן שמות: • שם משמעותי, ללא קיצורים. • רצוי להימנע מקו תחתי בראש השם . • בשם של משתנה המכיל מספר מילים יופרדו המילים באמצעות קו תחתי או PascalCasing . • רצוי להימנע משם שכולו Uppercase .
Naming Variables C# Keywords
Agenda • CTS – Common Type System • Naming Variables • Using Built-in data types • Creating User Defined Data Types • Converting Data Types
Using Built-in data types הגדרת משתנים: • בדרך כלל מוגדר משתנה בצמוד לטיפוס האב שלו: int stam_num; • ניתן להגדיר מספר משתנים בשורה אחת: float fnum1,fnum2,fnum3; • ניתן לאתחל משתנה בשורת ההגדרה : int stam_num = 123; • חובה לאתחל משתנים לפני השימוש בהם: int stam_num; Console.WriteLine(stam_num); • ניתן לאתחל או לשנות ערכים בכל מקום בקוד: int stam_num; Stam_num = 123; Console.WriteLine(stam_num);
Using Built-in data types אופרטורים:
Using Built-in data types אופרטורים: Pre increment int num = 10; int result = ++num; ערכי המשתנים: num=11 result=11 Post increment int num = 10; int result = num++; ערכי המשתנים: num=11 result=10 shorthand int num = 10; num += 20 ; ערכי המשתנים: num=30 שווה ערך ל- num = num + 20 ?: operator int num = 10; int result = num++; bool flag = num == 11 ? true : false; ערכי המשתנים: Flag = true;
Agenda • CTS – Common Type System • Naming Variables • Using Built-in data types • Creating User Defined Data Types • Converting Data Types
Creating User Defined Data Types Define Enumeration Type Enum • טיפוס בעל סדרת ערכים סימבוליים קבועים ומוגדרים מראש. • המופעים (Instances) מטיפוסים אלו מוגבלים לסדרה של ערכים קבועים אשר נקבעים בהגדרת ה- Enum . • ערכים קבועים אלו מורכבים מקבוע שמי ומקבוע נומרי המוצמד אליו. לדוגמה: enum Color { White, Black, Red, Green, Blue}; הקבוע השמי White מקבל את הקבוע הנומרי 0, הבא אחריו Black מכיל את הערך הנומרי 1 וכו'. ניתן לשנות את הערכים של הקבועים הנומרים אשר יוצמדו לקבועים השמיים: enum Color { White, Black=5, Red, Green, Blue}; במקרה זה Black=5 , Red=6 וכו'
Creating User Defined Data Types Define Enumeration Type Enum
Creating User Defined Data Types Define Enumeration Type הגדרה: enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; הגדרת מופע: Days today = Days.Sunday; הצגת הערך: Console.Write(“Today is {0}.”, today); // Sunday יציג
Creating User Defined Data Types Define Enumeration Type הבסיס ל- Enum הוא int , אולם ניתן לשנות זאת: enum Days : byte { Sunday=1, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; ניתן להגדיר את ה- Enum מהטיפוסים הבאים: byte, int, short, long
Creating User Defined Data Types Define Structure Type Structure (מבנה) • טיפוס מורכב מאוסף של שדות/משתנים. • מבנים הם Value types , ולכן שוכנים ב- Stack Segment . • #C מאפשרת להוסיף למבנים מתודות(Methods), ובנאים (Ctors) למעט בנאי ברירת מחדל (Default ctor). • מבנה תמיד יכיל בנאי ברירת מחדל אשר מאפס את השדות, מבנה זה מוגדר אוטומטית על ידי הסביבה.
Creating User Defined Data Types Define Structure Type public structPerson { public string FirstName; public string LastName; public intAge; } הגדרת מופע (Instance) מהמבנה: Person p; p.FirstName = “Shoshana”; p.LastName = “Israeli”; p.Age= 12; Console.WriteLine(FirstName:{0},Last Name:{1},Age{2}”, p.FirstName,p.LastName,p.Age); • חובה לאתחל את המבנה לפני השימוש בו.
Creating User Defined Data Types Define Structure Type ניתן להגדיר למבנים מתודות ובנאים: public struct Point { public int x; public int y; public Point(int x,int y) { this.x=x; this.y=y; } public void Print() { Console.WriteLine("X:{0},Y:{1}",x,y); } } Point p3 = new Point(10,20); p3.Print();
Agenda • CTS – Common Type System • Naming Variables • Using Built-in data types • Creating User Defined Data Types • Converting Data Types
Converting Data Types שני סוגים של המרות: • Implicit Data Type Conversion המרה מרומזת , המרה מטיפוס קטן לטיפוס גדול. לדוגמה: מ - int ל - long , מ - byte ל - long . • Explicit Data Type Conversion המרה מפורשת , המרה מטיפוס גדול לטיפוס קטן. לדוגמה: מ - long ל-int , מ - long ל – byte .
Converting Data Types Implicit Conversion : המרה מרומזת אינה יכולה להיכשל, אין איבוד מידע. using System; class Test { static void Main( ) { int intValue = 123; long longValue = intValue; . . . } }
Converting Data Types Explicit Conversion המרה מפורשת יכולה להיות מסוכנת, יכולה להיכשל, קיים סיכוי לאיבוד מידע. using System; class Test { static void Main( ) { long longValue = Int64.MaxValue; int intValue = (int) longValue; . . . } }
Converting Data Types המחלקה System.Convert כאשר מתבצעת המרה (מפורשת או מרומזת) נקראת מאחורי הקלעים המחלקה System.Convert. long lnum = 1234; int inum = Convert.ToInt32(lnum); Console.WriteLine(inum); float fnum = 12345.34f; short snum = Convert.ToInt16(fnum); Console.WriteLine(snum); bool flag = Convert.ToBoolean(snum); Console.WriteLine(flag);
Converting Data Types המרות Built-in . הטיפוסים הפשוטים מכילים מתודות להמרה בין טיפוס הפוט למרוזת נומרית,ובין מחרוזת נמרית לטיפוס פשוט. int num = 1234; string str = num.ToString(); Console.WriteLine(str); str = "123456"; num = int.Parse(str); Console.WriteLine(num); float fnum = 1234.45f; str = fnum.ToString(); Console.WriteLine(str);
Agenda • CTS – Common Type System • Naming Variables • Using Built-in data types • Creating User Defined Data Types • Converting Data Types
www.corner.co.il Books Corner – הוצאת ספרים מקוונת