如果var
關鍵字在編譯時解析,如何做下面的工作?懷疑關於「無功」的關鍵字和三元運算符:
class A {
}
class B : A {
}
int k = 1;
var x = (k < 0) ? new B() : new A();
編輯:
我終於明白,問題不是關於var
本身,而是對?:
運營商的行爲。出於某種原因,我認爲以下可能是可能的:
object x = something ? 1 : ""
這不是不可能的:)
(約三元運算符)相關的問題:
Why assigning null in ternary operator fails: no implicit conversion between null and int?
所以,靜態類型將永遠是'A'?任何有關這些上下文中'var'關鍵字的行爲的文檔都有解釋? –
@Oscar:是的,如果'A'本身就是一種常見類型(就像這裏的情況一樣)。不確定鏈接,但我會讓你知道,如果我找到它。 – Mehrdad
@Mehrdad有趣......感謝您的回答。 –