C#的值类型初始化谜 [英] C# Value type Initialization mystery

查看:133
本文介绍了C#的值类型初始化谜的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

http://msdn.microsoft.com/en-us/library/ s1ax56ch.aspx

在上面提到的文章中,我读出。 的每个值类型都有一个隐含的默认构造函数初始化该类型的默认值。

in the above mentioned article i read . "Each value type has an implicit default constructor that initializes the default value of that type."

但是,在这篇文章中乔恩斯基特说:

<一个href="https://stackoverflow.com/questions/333829/why-cant-i-define-a-default-constructor-for-a-struct-in-net/333840#333840">Why我不能在.NET?

在C#中的基本规则是:的默认值,任何类型都可以不依赖任何初始化 意味着中所提到的意见。  默认值总是你会通过擦拭内存得到什么。你可以不提供任何显式的实现,它总是会被调用。

"the basic rule in C# is "the default value for any type can't rely on any initialization" means as mentioned in comments. The default value is always "what you'd get by wiping memory". You can't provide any explicit implementation which will always be called.

谁能告诉我,谁是正确的?

究竟发生在一个值类型声明其构造函数被调用或内存消灭了。

what actually happens when a value type is declared its constructor is called or memory is wiped out.

推荐答案

这两个环节不相互矛盾。这将有助于如果你能解释一下你为什么这么认为。

Both links don't contradict each other. It would help if you could explain why you think so.

您似乎认为的的任何类型的可以不依赖任何初始化的默认值的手段的值类型不会被初始化的,这是不真正。 他们得到初始化为0

You seem to think "the default value for any type can't rely on any initialization" means "value types don't get initialized", which is not true. They get initialized to 0.

什么乔恩的意思是说那里(和没有说)是的用户不能为值类型提供一个自定义的构造函数的。

What Jon means to say there (and does say) is "Users can't provide a custom constructor for value types".

这篇关于C#的值类型初始化谜的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆