如果你的簡歷上面寫“熟悉/瞭解C#”,那麼你就應該能夠回答下面的這些基礎問題。我將給出自己的簡要答案以供參考。歡迎討論。
傳入某個屬性的set方法的隱含引數的名稱是什麼?
value,它的型別和屬性所聲名的型別相同。
如何在C#中實現繼承?
在類名後加上一個冒號,再加上基類的名稱。
C#支援多重繼承麼?
不支援。可以用介面來實現。
被protected修飾的屬性/方法在何處可以訪問?
在繼承或間接繼承與這個類的子類中可以訪問。
私有成員會被繼承麼?
會,但是不能被訪問。所以看上去他們似乎是不能被繼承的`,但實際上確實被繼承了。
請描述一下修飾符protected internal。
被protected internal修飾的屬性/方法只能在它的在同一個程式集(Assembly)中的子類被訪問。
C#提供一個預設的無引數建構函式,當我實現了另外一個有一個引數的建構函式時候,還想保留這個無引數的建構函式。這樣我應該寫幾個建構函式?
兩個,一旦你實現了一個建構函式,C#就不會再提供預設的構造函數了,所以需要手動實現那個無引數建構函式。
C#中所有物件共同的基類是什麼?
ct.
過載和覆寫有什麼區別?
過載提供了對一個方法簽名的不同引數呼叫的實現。覆寫提供了子類中改變父類方法行為的實現。
在方法定義中,virtual有什麼含意?
被virtual修飾的方法可以被子類覆寫。
能夠將非靜態的方法覆寫成靜態方法麼?
不能,覆寫方法的簽名必須與被覆寫方法的簽名保持一致,除了將virtual改為override。
可以覆寫私有的虛方法麼?
不可以,甚至子類中無法訪問父類中的私有方法。
能夠阻止某一個類被其他類繼承麼?