因此对于复杂类型,我们可以写:
return new MyType ( 5 );
但是为什么我们不能做类似的东西(为了一个对称):
return new int ( 5 );
return new Int64 ( 5 );
我知道只提供无参数构造函数。这是什么原因?
答案 0 :(得分:11)
有什么意义?任何没有构造函数的.NET值类型都具有文字形式。如果它们没有文字形式,则无法提供将其类型作为参数的构造函数。
因为你有文字,所以提供一个带有该文字的构造函数是没有意义的。
没有文字,不可能int i = new int(new int(new int(...)));
用文字
int i = new int(5); // What is the point? Would the constructor do *anything*
// besides int i = 5?
答案 1 :(得分:2)
部分设计是知道要遗漏什么。由于它没有增加价值,因此没有编码。
答案 2 :(得分:1)
只是这些类型只有默认构造函数。许多其他复杂的.net类型也只有一个默认的构造函数。我猜想没有参数化的原因是,正如其他答案所提到的那样,没有一个很好的理由。
答案 3 :(得分:0)
这可能听起来很奇怪,但你为什么要这样? - 复杂类型是有意义的,因为你使用1-n输入来获得结果但是int只返回一个int ...为什么呢?