- 相關(guān)推薦
c#面試問題及答案
面試除了基本信息之外還會問一些與崗位相關(guān)的問題,接下來是小編給大家搜集的c#面試問題及答案,希望幫助到大家!
1、什么是裝箱和拆箱?
答:裝箱就是把值類型轉(zhuǎn)成引用類型:裝箱就是把值類型(包括int與結(jié)構(gòu)這樣的內(nèi)置類型)轉(zhuǎn)換為object類型,拆箱就是把引用類型轉(zhuǎn)換為值類型,裝箱與拆箱實(shí)現(xiàn)了兩種類型的互換。
2、對象和類的區(qū)別是什么?
答:“類”(Class)具有相同屬性和方法的一組對象的集合 . 類是抽象的概念,僅僅是模板對象是一個你能夠看得到、摸得著的具體實(shí)體
3、什么是類的方法?
答:類是由一組具有相同屬性和共同行為的實(shí)體抽象而來,對象執(zhí)行的操作通過編寫類的方法來實(shí)現(xiàn)。可見,類的方法是一個功能模塊,作用是“做一件事”。
4、什么是局部變量,什么是成員變量?
答:局部變量是指一個方法中定義的變量;成員變量是指在類范圍里定義的變量,也就是之前講過的屬性。
5、靜態(tài)成員和實(shí)例成員的區(qū)別?
答:使用static修飾的成員稱為靜態(tài)成員,使用實(shí)例對象調(diào)用的成員稱為實(shí)例成員
6、概述序列化
答: 序列化是將對象的狀態(tài)存儲到特定存儲介質(zhì)中的過程。反序列化則是從特定存儲介質(zhì)中的數(shù)據(jù)重新構(gòu)建對象的過程
7、類成員有幾種可訪問形式?簡述可訪問形式修飾符的訪問權(quán)限。
答:可訪問形式有 private、 protected、 public、 internal;
public(公共的) 完全公開,訪問不受限制。
protected(保護(hù)的) 訪問僅限于包含類或從包含類派生的類型。該類內(nèi)部和繼承類中可以訪問。
internal(內(nèi)部的) 訪問僅限于當(dāng)前程序集。在同一命名空間內(nèi)可以訪問。
protected internal(內(nèi)部保護(hù)的) 訪問僅限于從包含類派生的當(dāng)前程序集或類型。
private(私有的) 訪問僅限于包含類型。在類的內(nèi)部才可以訪問。
8、繼承的特點(diǎn)有哪些?
答:C# 繼承通過 : 關(guān)鍵字來實(shí)現(xiàn),實(shí)現(xiàn)繼承的類被稱為子類,被繼承的類被稱為父類,有的也稱為基類、超類。父類和子類的關(guān)系是is-a的關(guān)系,即子類is-a父類。
9、傳入某個屬性的set方法的隱含參數(shù)的名稱是什么?
答: 隱含參數(shù)的名稱是value,它的類型和屬性所聲名的類型相同。
10、如何在C#中實(shí)現(xiàn)繼承?
答: 在類名后加上一個冒號,再加上基類的名稱。
11、對象能否調(diào)用靜態(tài)方法 ?
答:不能。對于類內(nèi)部定義的靜態(tài)變量及靜態(tài)方法,該類的對象均不能調(diào)用。
12、C#支持多重繼承么?
答:類之間不支持多重繼承,接口之間支持。類對接口叫做實(shí)現(xiàn),不叫繼承。
13、被protected修飾的屬性/方法在何處可以訪問?
答:在繼承或間接繼承與這個類的子類中可以訪問。
14、私有成員會被繼承么?
答:會,但是不能被訪問。所以看上去他們似乎是不能被繼承的,但實(shí)際上確實(shí)被繼承了。
15、接口和抽象類具有什么區(qū)別?
答:含有abstract修飾符的class即為抽象類,abstract 類不能創(chuàng)建的實(shí)例對象。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體子類中實(shí)現(xiàn),所以,不能有抽象構(gòu)造方法或抽象靜態(tài)方法。如果的子類沒有實(shí)現(xiàn)抽象父類中的所有抽象方法,那么子類也必須定義為abstract類型。
接口(interface)可以說成是抽象類的一種特例,接口中的所有方法都必須是抽象的。接口中的方法定義默認(rèn)為public abstract類型
下面比較一下兩者的語法區(qū)別:
抽象類可以有構(gòu)造方法,接口中不能有構(gòu)造方法。
抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。
抽象類中抽象方法可以指定為public,接口中抽象方法不能指定任何修飾符,默認(rèn)就是public
一個類可以實(shí)現(xiàn)多個接口,但只能繼承一個抽象類。
16、C#中所有對象共同的基類是什么?
答:System.Object.
17、在方法定義中,virtual有什么含意?
答:被virtual修飾的方法可以被子類覆寫。
18、能夠?qū)⒎庆o態(tài)的方法覆寫成靜態(tài)方法么?
答:不能,覆寫方法的簽名必須與被覆寫方法的簽名保持一致,除了將virtual改為override。答案并沒有大錯,只是靜態(tài)方法根本無override概念,屬于引起困惑的問題 。
19、可以覆寫私有的虛方法么?
答:不可以,甚至子類中無法訪問父類中的私有方法。
20、能夠阻止某一個類被其他類繼承么?
答:可以,使用關(guān)鍵字sealed。 還可以將所有構(gòu)造函數(shù)的訪問級別都設(shè)為Private或子類無法訪問到的其他級別(Assembly外的iternal),也有同樣的效果。
【c#面試問題及答案】相關(guān)文章:
經(jīng)典面試的問題及答案06-27
面試的經(jīng)典問題及答案06-25
面試經(jīng)典問題及答案07-02
面試問題答案07-11
面試護(hù)士問題及答案07-13
面試問題及答案07-11
客服面試的問題及答案06-25
面試問題及答案06-09
面試遇到的問題及答案06-25
面試美容的問題答案06-25