- 相關(guān)推薦
Visual C#程序員面試問題及答案
如果你的簡歷上面寫“熟悉/了解C#”,那么你就應(yīng)該能夠回答下面的這些基礎(chǔ)問題。我將給出自己的簡要答案以供參考。歡迎討論。
傳入某個屬性的set方法的隱含參數(shù)的名稱是什么?
value,它的類型和屬性所聲名的類型相同。
如何在C#中實現(xiàn)繼承?
在類名后加上一個冒號,再加上基類的名稱。
C#支持多重繼承么?
不支持?梢杂媒涌趤韺崿F(xiàn)。
被protected修飾的屬性/方法在何處可以訪問?
在繼承或間接繼承與這個類的子類中可以訪問。
私有成員會被繼承么?
會,但是不能被訪問。所以看上去他們似乎是不能被繼承的,但實際上確實被繼承了。
請描述一下修飾符protected internal。
被protected internal修飾的屬性/方法只能在它的在同一個程序集(Assembly)中的子類被訪問。
C#提供一個默認的無參數(shù)構(gòu)造函數(shù),當我實現(xiàn)了另外一個有一個參數(shù)的構(gòu)造函數(shù)時候,還想保留這個無參數(shù)的構(gòu)造函數(shù)。這樣我應(yīng)該寫幾個構(gòu)造函數(shù)?
兩個,一旦你實現(xiàn)了一個構(gòu)造函數(shù),C#就不會再提供默認的構(gòu)造函數(shù)了,所以需要手動實現(xiàn)那個無參數(shù)構(gòu)造函數(shù)。
C#中所有對象共同的基類是什么?
System.Object.
重載和覆寫有什么區(qū)別?
重載提供了對一個方法簽名的不同參數(shù)調(diào)用的實現(xiàn)。覆寫提供了子類中改變父類方法行為的實現(xiàn)。
在方法定義中,virtual有什么含意?
被virtual修飾的方法可以被子類覆寫。
能夠?qū)⒎庆o態(tài)的方法覆寫成靜態(tài)方法么?
不能,覆寫方法的簽名必須與被覆寫方法的簽名保持一致,除了將virtual改為override。
可以覆寫私有的虛方法么?
不可以,甚至子類中無法訪問父類中的私有方法。
能夠阻止某一個類被其他類繼承么?
可以,使用關(guān)鍵字sealed。
能夠?qū)崿F(xiàn)允許某個類被繼承,但不允許其中的某個方法被覆寫么?
可以,標記這個類為public,并標記這個方法為sealed。
什么是抽象類(abstract class)?
一種不可以被實例化的類。抽象類中一般含有抽象方法,當然也可有具體實現(xiàn)。繼承類只有實現(xiàn)過所有抽象類的抽象方法后才能被實例化。
何時必須聲明一個類為抽象類?
當這個類中包含抽象方法時,或是該類并沒有完全實現(xiàn)父類的抽象方法時。
接口(interface)是什么?
只含有共有抽象方法(public abstract method)的類。這些方法必須在子類中被實現(xiàn)。
為什么不能指定接口中方法的修飾符?
接口中的方法用來定義對象之間通信的契約,指定接口中的方法為私有或保護沒有意義。他們默認為公有方法。
可以繼承多個接口么?
當然。
那么如果這些接口中有重復(fù)的方法名稱呢?
這種情況中你可以決定如何實現(xiàn)。當然需要特別得小心。但是在編譯環(huán)節(jié)是沒有問題的。
接口和抽象類的區(qū)別是什么?
接口中所有方法必須是抽象的,并且不能指定方法的訪問修飾符。抽象類中可以有方法的實現(xiàn),也可以指定方法的訪問修飾符。
如何區(qū)別重載方法?
不同的參數(shù)類型,不同的參數(shù)個數(shù),不同的參數(shù)順序。
const和readonly有什么區(qū)別?
const關(guān)鍵字用來聲明編譯時常量,readonly用來聲明運行時常量。
System.String 和System.StringBuilder有什么區(qū)別?
System.String是不可變的字符串。System.StringBuilder存放了一個可變的字符串,并提供一些對這個字符串修改的方法。
【Visual C#程序員面試問題及答案】相關(guān)文章:
面試問題及答案01-02
面試司機的問題及答案04-26
面試問題及答案07-25
面試后勤問題及答案09-23
物流面試問題及答案02-10
銀行面試問題及答案10-14
求職面試問題及答案09-20
小升初面試問題及答案08-15