|
|
1
4
对于一个
我的建议是:
|
|
|
2
1
这样做的原因是,结构(System.ValueType的实例)由clr特殊处理:它是用所有字段0(或默认值)初始化的。您甚至不需要创建一个-只需声明它。这就是需要默认构造函数的原因。 你可以用两种方式解决这个问题:
将结构更改为类可能会产生一些非常微妙的结果(在多线程环境中,内存使用情况和对象标识会更常见),而且对于未初始化的对象来说,这是非常微妙但很难调试nullreferenceexceptions的。 |
|
|
3
0
下面的表达式说明了无法定义默认构造函数的原因:
这里有3种选择
.NET对结构和类都执行相同的操作:字段和数组元素都用零填充。这也使得结构和类之间的行为更加一致,并且没有不安全的代码。它还允许.NET框架不专门化
这是structs.net要求的默认构造函数,它自己负责:将所有字节归零。 现在,要处理这个问题,您有几个选择:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |