c# 数据类型的默认值及如何定义空值

时间:2025-04-17 08:41:06
bool做局部变量 ,是没有默认值的。
bool放在方法外面是成员变量 成员变量是附有初值的 ,是false。
 

类的成员变量,和局部变量是不一样的。成员变量在类初始化时就会分配一个默认值,局部变量则不会。

所有变量都要求必须有初值,如没有赋值,采用默认值。对于简单类型,sbyte、byte、short、ushort、int、uint、long和ulong默认值为0,char类型默认值是(char)0,float为0.0f,double为0.0d,decimal为0.0m,bool为false,枚举类型为0,在结构类型和类中,数据成员的数值类型变量设置为默认值,引用类型变量设置为null。
可以显示的赋值,例如int i=0。而对于复杂结构类型,其中的每个数据成员都按此种方法赋值,显得过于麻烦。由于数值类型都是结构类型,可用new语句调用其构造函数初始化数值类型变量,例如:int j=new int()。请注意,用new语句并不是把int变量变为引用变量,j仍是值类型变量,这里new仅仅是调用其构造函数。所有的数值类型都有默认的无参数的构造函数,其功能就是为该数值类型赋初值为默认值。对于自定义结构类型,由于已有默认的无参数的构造函数,不能再定义无参数的构造函数,但可以定义有参数的构造函数。

bool ?a; 暂时不清楚用法,知道的大手可以评论指导下,谢谢;

int ?b;a的值为空;

string c=null;