c# public int? 和int的区别

来源:百度知道 编辑:UC知道 时间:2024/09/24 10:29:12
public int? MsgType_ID
{
set{ _msgtype_id=value;}
get{return _msgtype_id;}
}

public int MsgType_ID
{
set{ _msgtype_id=value;}
get{return _msgtype_id;}
}

这个在c#中的区别

int?为可空类型,把值类型装箱为引用类型。如果是int,return null就是return 0,如果是int?,return null就是null.要访问值,可以直接赋值给一个int,CLI会自动拆箱,或者调用它的Value属性。

c#在编译的时候会检查有没有未赋初值就使用的变量,如果有就会抛出异常,比如声明了一个int a;没有赋初值后面就直接用了(这个相信你遇到过)。
如果加上了“?”(int? a;)编译器就不会抛出那个异常了。这是c#加入的新特性。

int? 就是这个变量可以为null和int
int就这个变量只能等于int

public代表是公共变量,你在其它类里可以调用,变量的默认级别是private,就是你只能在声明变量的这个类里引用到。另外其他访问级别有:
public 访问不受限制。
protected 访问仅限于包含类或从包含类派生的类型。
internal 访问仅限于当前程序集。
protected internal 访问仅限于从包含类派生的当前程序集或类型。
private 访问仅限于包含类型。

变量的默认级别是:private