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类:提供公有的和受保护的成员方法