C#的一些基础知识
最近在看大学的一些技术文档,其中有一个PPT是讲的C# 的一些基础知识,做一整理,以后可以温习。
一、自动属性
普通类:
class Person { private string firstName; private string lastName; private int id; private int age; public string FirstName { get { return firstName; } set { firstName = value; } } public string LastName { get { return lastName; } set { lastName = value; } } public int Age { get { return age; } } public int ID { set { id= value; } } }
使用自动属性的类:
class Person { private int id; private int age; public string FirstName { get; set; } public string LastName { get ; set ; } public int Age { get { return age; } } public int ID { set { id= value; } } }
自动属性的典型适用场合:在属性代码中只包含基本的赋值取值功能简单的实体类
对于自动属性,这里不多说神马,主要是有几个要注意的地方:
1. 自动属性不能实现只读或者是只写属性。
2. 因为没有声明私有变量,在使用自动属性时只能直接使用属性进行引用。
二、对象初始化器及集合初始化器
首先看下对象初始化器,
//传统的初始化对象及赋值 Person lincoln = new Person(); lincoln.FirstName = "Lincoln"; lincoln.LastName = "Burrows"; lincoln.Age = 30; //使用对象初始化器 Person scofield = new Person { FirstName = "Michael", LastName = "Scofield", Age = 20 };
要说明的是对象初始化器是可嵌套的,即对一个对象初始化的时候可以内嵌另一个类的对象,如下面的Person对象中内嵌了Address对象:
//可嵌套的对象初始化器 Person tbag = new Person { FirstName = "Theodore ", LastName = "Bagwell", Age = 32, Address = new Address { Street = "Prison SONA", Country = "Panama" } };
集合初始化器和对象初始化器相同:
//传统的方式 List<string> foxRiver8 = new List<string>(); foxRiver8.Add("Michael"); foxRiver8.Add("Lincoln"); foxRiver8.Add("Sucre"); foxRiver8.Add("Abruzzi"); //使用集合初始化器 List<string> foxRiver8 = new List<string>{ "Michael", "Lincoln", "Sucre", "Abruzzi", };
三、扩展方法
首相先来看一个例子:
string sqlStr = "SELECT * FROM table_A WHERE ID = 1"; sqlStr.ExcuteSql(); Class Utilily { public static void ExcuteSql(this string str) { Console.WriteLine(str + " 这个扩展方法输出的字符串"); } }
这里只是一个简单的对字符串进行扩展,使每个字符串类型都有了一个ExcuteSql方法,当然你也可以对其他类型进行扩展。
扩展方法的语法:
不带参数的扩展方法: static 方法名 (this 目标类型 参数名)
带参数的扩展方法: static 方法名 (this 目标类型 参数名,参数类型1 参数名1,… …. )
使用扩展方法时,需要注意以下几点:
1. 扩展方法允许我们对已存在类型的行为进行扩展
2. 扩展方法是一种特殊的静态方法
3. 扩展方法必须在静态类中定义
4. 扩展方法的优先级低于同名的类方法
5. 扩展方法只在特定的命名空间内有效
6. 除非必须不要滥用扩展方法
/////////////////////////////////////////////////////////////////////////////
///排版真心烂,看着都受不了,Please喷死这个菜鸟!!!鄙视。///
////////////////////////////////////////////////////////////////////////////