有人能告诉我在C#和vb中声明变量的默认值是什么
答案 0 :(得分:44)
在c#中,您可以使用default关键字来确定默认值。
例如:
default(bool) default(int) default(int?)
答案 1 :(得分:24)
你的意思是(方法)变量吗?或字段(在实例或类型上)?
对于方法级变量(至少在C#中),它是无关紧要的,因为“明确赋值”意味着你必须给它一个值才能阅读它。
字段默认为按位零状态:
Nullable<T>
(int?
等),表示空答案 2 :(得分:13)
这可以在MSDN中找到:
Visual Basic .NET定义了以下基本类型:
整数值类型字节(1字节无符号整数),短(2字节有符号整数),整数(4字节有符号整数)和长(8字节有符号整数)。这些类型分别映射到System.Byte,System.Int16,System.Int32和System.Int64。 整数类型的默认值相当于文字0。
浮点值类型为Single(4字节浮点)和Double(8字节浮点)。这些类型分别映射到System.Single和System.Double。 浮点类型的默认值相当于文字0。
十进制类型(16字节十进制值),映射到System.Decimal。 decimal的默认值相当于文字0D。
布尔值类型,表示真值,通常是关系或逻辑运算的结果。文字是System.Boolean类型。 布尔类型的默认值相当于文字False。
日期值类型,表示日期和/或时间并映射到System.DateTime。 日期类型的默认值相当于文字#01/01/0001 00:00 AM AM#。
Char值类型,表示单个Unicode字符并映射到System.Char。 Char类型的默认值等效于常量表达式ChrW(0)。
String引用类型,表示Unicode字符序列并映射到System.String。 String类型的默认值是空引用。
答案 3 :(得分:5)
C#语言规范指出,对于值类型,默认值与默认构造函数指定的默认值相同,对于引用类型,它为null:
因此值类型默认构造函数值为:
对于所有简单类型,默认值 value是一点产生的值 全零的模式:
对于sbyte,byte,short,ushort,int,uint,long和ulong, 默认值为0.
对于char,默认值为'\ x0000'。对于浮动,默认为
值为0.0f。对于double,默认值为 0.0D。对于十进制,默认值为 0.0米。对于bool,默认值为false。
对于枚举类型E,默认值为0.
对于struct-type,默认值是由其生成的值 将所有值类型字段设置为 他们的默认值和所有 引用类型字段为null。
http://msdn.microsoft.com/en-us/library/aa691142(v=VS.71).aspx
字符串不是值类型。
答案 4 :(得分:3)
取决于变量的类型。如果类型可以为null,则它的默认值将为null。可空类型都将从null开始。
您可以使用以下方式设置初始值:
string s1 =“test”;
Dim s1 As String =“test”