快速的問題:爲什麼null類型的值不能用作double類型的默認參數?
MSDN - Named and Optional Arguments (C# Programming Guide)明確指出,
「可選參數,您可以省略參數的一些參數 這兩種技術都可以與方法,索引使用,構造, 和代表。 「。
因此,不是這樣的:
class MyClass
{
//..
public MyClass() { // Empty Constructor's Task }
public MyClass(SomeType Param1) { // 2nd Constructor's Task }
public MyClass(SomeType Param1, SomeType Param2) { // 3rd Constructor's Task }
}
我應該能夠做到這一點:
class MyClass
{
//..
public MyClass(SomeType Param1 = null, SomeType Param2 = null)
{
if (Param1)
{
if (Param2)
{
// 3rd constructor's Task
}
else
{
// 2nd constructor's Task
}
}
else
{
if (!Param2)
{
// Empty constructor's Task
}
}
}
}
那麼,爲什麼這不工作:
public MyClass(double _x = null, double _y = null, double _z = null, Color _color = null)
{
// ..
}
告訴我:
類型「空」的值,因爲 沒有標準轉換爲類型「雙」
如果有一件事我學到了,那就是downvoter永遠不會看到這個問題,因爲他不會回到你的帖子:D – Vucko
@Vucko但是像你這樣的專業用戶會來看看它,會知道這是不公平的,因爲沒有什麼是錯誤的,這是**有用,並upvote它;) –
是的,我認爲這是一個很酷的問題,並upvoted它:D – Vucko