在C#中类是一种数据结构,它可以包括数据成员、函数成员(方法、属性、事件、索引器、运算符、实例构造函数、静态构造函数和析构函数)以及嵌套类型。
属性是类中字段和方法的结合体,通过定义属性,调用该类的时候,可以直接对该类的属性进行读写操作。
属性的定义通过get和set关键字来实现,get关键字用来定义读取该属性时的操作,而set关键字用来定义设置该关键字的操作。如果一个属性同时具备了get和set操作,则该属性为读写性质的属性;如果只有get操作,则为只读属性,若只有set操作,则为只写属性。
下面的代码定义了一个类的ID属性,该属性为读写属性,外部可以直接对其属性进行操作。
class Test
{
//私有成员
private string id;
//公有读属性
public string ID{
get{return id}
}
//公有写属性
public string ID{
set {id=value;}
}
}
自动实现的属性,这个属性是用来简化创建类的操作,当类的属性中不需要其他逻辑时,自动实现的属性可使属性声明变得更加简捷。
创建User类的代码如下所示:
public class User
{
public int Id{get;set;}
public string Name{get;set;}
public int Age{get;set;}
}
c# 定义属性时,在数据类型后加“?”,如下所示:
public virtual DateTime? actTime
{
get{return actTime;}
set{actTime = value;}
}
Nullrable, 泛型中的,可空类型
对于一个类型,如果既可以给它分配一个值,也可以给它分配null,就说这个类型是可空的.如类似int32的值类型不是可空类型。由于值类型的容量只够表示适合该类型的值,因为它不可为空;值类型没有表示空值所需的额外容量。
C# 引入Nullable类型,允许我们将值类型赋值为null。
Nullable是一个值类型,而且限制类型参数为值类型。
int? x = 3;
这是.NET 2.0开始引入的“可空泛型结构”Nullrable的C#缩写方式