1. 類和結構數組
2. 類數據結構
類包括成員,成員能夠是靜態或實例成員。
靜態成員屬於類;實例成員屬於對象。
靜態字段的值對每一個對象都是相同的;每一個對象的實例字段均可以有不一樣的值。函數
成員種類包括字段,常量,方法,屬性,構造函數,索引器(容許對象用訪問數組的方式訪問),運算符,事件,析構函數,類型(類能夠包含內部類)。ui
3. 結構this
4.按值和按引用傳遞參數spa
(1) ref參數指針
(2) out參數code
5.可空類型對象
前提:引用類型的變量能夠爲空null,而值類型的變量不能。所以C#採用可空類型(類型後加?)定義能夠爲空的值類型。blog
類型與可空類型的轉換:使用可空類型的HasValue和Value屬性。
1 int? x1 = 1; //可空類型 2 int x2 = x1.HasValue ? x1.Value : -1; 3 int x3 = x1 ?? -1; //合併操做符
6.枚舉:是值類型,包含一組命名的常量。
// 結合單個位來包括多個值 [Flags] public enum DaysOfWeek { Monday = 0x1, Tuesday = 0x2, Wednesday = 0x4, Thursday = 0x8, Friday = 0x10, Saturday = 0x20, Sunday = 0x40, Weekend = Saturday | Sunday, Workday = 0x1f, AllWeek = Workday | Weekend } // 可使用邏輯或運算符爲一個變量指定多個值 DaysOfWeek mondayAndWednesday = DaysOfWeek.Monday | DaysOfWeek.Wednesday; WriteLine(mondayAndWednesday); DaysOfWeek weekend = DaysOfWeek.Saturday | DaysOfWeek.Sunday; WriteLine(weekend); DaysOfWeek workday = DaysOfWeek.Monday | DaysOfWeek.Tuesday | DaysOfWeek.Wednesday | DaysOfWeek.Thursday | DaysOfWeek.Friday; WriteLine(workday);
運行結果爲:
7. 部分類
8. 擴展方法:給對象添加功能的一種方法之一,在不能使用繼承時可採用(如類是密封的)
// 擴展方法:統計字符串單詞個數 public static class StringExtensions { public static int GetWordCount(this string s) => s.Split().Length; } // 使用擴展方法 string fox = "the quick brown fox jumped over the lazy dogs down 9876543210 times"; int wordCount = fox.GetWordCount(); WriteLine($"{wordCount} words");
9. Object類:提供公有的和受保護的成員方法