只是好奇。

如果你走的话:

string myString;

它的价值为无效。

但是如果你去:

int myInt;

C#中此变量的值是多少?

谢谢

大卫

有帮助吗?

解决方案

首先,请注意,这仅适用于字段,而不适用于本地变量 - 至少在C#中分配了这些变量,这些变量才能读取。实际上,如果您有一个适当的标志集,则CLR将堆栈帧初始化为0-我认为默认情况下是。虽然很少可以观察到 - 您必须经历一些粗略的骇客。

的默认值 int 为0-对于任何类型,它本质上是由一个装满零的位模式表示的值。对于值类型,这等同于调用无参数构造函数,对于参考类型,这是null。

基本上,CLR用零擦拭内存。

这也是由 default(SomeType) 对于任何类型。

其他提示

int的默认为0

INT的默认值为0。

请参阅此处,以获取每个类型默认值的完整列表: http://msdn.microsoft.com/en-us/library/83fhsxwc.aspx

这是C#中值类型的默认值表:http://msdn.microsoft.com/en-us/library/83fhsxwc.aspx参考类型默认值通常为null。

字符串是参考类型。 int是一个值类型。参考类型只是针对堆的堆栈上的指针,该指针可能包含一个值,也可能不会包含一个值。值类型只是堆栈上的值,但必须始终将其设置为某物。

类型的单位化变量的值 T 总是 default(T). 。对于所有参考类型,这都是null,对于值类型,请参见@blorgbeard发布的链接(或编写一些代码以检查它)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top