所以對於複雜的類型,我們可以這樣寫:如果基本類型是對象,爲什麼我們不能這樣做?
return new MyType (5);
,但爲什麼我們不能做的東西一樣(有對稱的一個):
return new int (5);
return new Int64 (5);
我只知道提供參數構造函數。這是什麼原因?
所以對於複雜的類型,我們可以這樣寫:如果基本類型是對象,爲什麼我們不能這樣做?
return new MyType (5);
,但爲什麼我們不能做的東西一樣(有對稱的一個):
return new int (5);
return new Int64 (5);
我只知道提供參數構造函數。這是什麼原因?
會有什麼意義?任何沒有構造函數的.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-n輸入來獲得結果,但int只是返回一個int ...所以爲什麼?
設計的一部分知道該怎麼離開了。由於它沒有增加價值,所以沒有編碼。
只是這些類型只有一個默認的構造函數。許多其他複雜的.net類型也只有一個默認的構造函數。我猜想沒有參數化的原因是因爲正如其他答案所提到的那樣,其中沒有一個真正的理由。
只是因爲好奇才想知道。就像你可能只想直接使用類似Int64的類型一樣,就像其他類型一樣,即使類型可能會從其他類型轉換,如:MyType mine = 5; – 2009-04-22 22:38:25