- 相關(guān)推薦
.net程序員面試試題
1. new 關(guān)鍵字用法
(1)new 運(yùn)算符
用于創(chuàng)建對象和調(diào)用構(gòu)造函數(shù)。
(2)new 修飾符
用于向基類成員隱藏繼承成員。
(3)new 約束
用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。
2.如何把一個Array復(fù)制到ArrayList里
(1) 實(shí)現(xiàn)1
string[] s ={ "111", "22222" };
ArrayList list = new ArrayList();
list.AddRange(s);
(2)實(shí)現(xiàn)2
string[] s ={ "111", "22222" };
ArrayList list = new ArrayList(s);
3.DataGrid的Datasouse可以連接什么數(shù)據(jù)源
DataTable
DataView
DataSet
DataViewManager
任何實(shí)現(xiàn)IListSource接口的組件
任何實(shí)現(xiàn)IList接口的組件
4.概述反射和序列化
反射
公共語言運(yùn)行庫加載器管理應(yīng)用程序域。這種管理包括將每個程序集加載到相應(yīng)的應(yīng)用程序域以及控制每個程序集中類型層次結(jié)
構(gòu)的內(nèi)存布局。
程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態(tài)地創(chuàng)
建類型的實(shí)例,將類型綁定到現(xiàn)有對象,或從現(xiàn)有對象中獲取類型。然后,可以調(diào)用類型的方法或訪問其字段和屬性。
序列化
序列化是將對象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^程。與序列化相對的是反序列化,它將流轉(zhuǎn)換為對象。這兩個過程結(jié)合起來
,可以輕松地存儲和傳輸數(shù)據(jù)。
5.概述O/R Mapping 的原理
利用反射,配置將對象和數(shù)據(jù)庫表映射。
6. 可訪問性級別有哪幾種
public 訪問不受限制。
protected 訪問僅限于包含類或從包含類派生的類型。
internal 訪問僅限于當(dāng)前程序集。
protected internal 訪問僅限于從包含類派生的當(dāng)前程序集或類型。
private 訪問僅限于包含類型。
7. sealed 修飾符有什么特點(diǎn)
sealed 修飾符可以應(yīng)用于類、實(shí)例方法和屬性。密封類不能被繼承。密封方法會重寫基類中的方法,但其本身不能在任何派生
類中進(jìn)一步重寫。當(dāng)應(yīng)用于方法或?qū)傩詴r,sealed 修飾符必須始終與 override一起使用。
8.列舉ADO.NET中的共享類和數(shù)據(jù)庫特定類
共享類
DataSet
DataTable
DataRow
DataColumn
DataRelation
Constraint
DataColumnMapping
DataTableMapping
特定類
(x)Connection
(x)Command
(x)CommandBuilder
(x)DataAdapter
(x)DataReader
(x)Parameter
(x)Transaction
9.執(zhí)行下面代碼后:
String strTemp ="abcdefg 某某某";
Int i=System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j=strTemp.Length;
問:
i=?
j=?
i=(14 ) ;j=(11 ) 中文兩個字節(jié)
10.C#中,string str = null 與 string str ="",請盡量用文字說明區(qū)別。
string str =""初始化對象分配空間
而string str=null初始化對象
11.詳述.NET里class和struct的異同
結(jié)構(gòu)與類共享幾乎所有相同的語法,但結(jié)構(gòu)比類受到的限制更多:
盡管結(jié)構(gòu)的靜態(tài)字段可以初始化,結(jié)構(gòu)實(shí)例字段聲明還是不能使用初始值設(shè)定項(xiàng)。
結(jié)構(gòu)不能聲明默認(rèn)構(gòu)造函數(shù)(沒有參數(shù)的構(gòu)造函數(shù))或析構(gòu)函數(shù)。
結(jié)構(gòu)的副本由編譯器自動創(chuàng)建和銷毀,因此不需要使用默認(rèn)構(gòu)造函數(shù)和析構(gòu)函數(shù)。實(shí)際上,編譯器通過為所有字段賦予默認(rèn)值(
參見默認(rèn)值表)來實(shí)現(xiàn)默認(rèn)構(gòu)造函數(shù)。結(jié)構(gòu)不能從類或其他結(jié)構(gòu)繼承。
結(jié)構(gòu)是值類型 -- 如果從結(jié)構(gòu)創(chuàng)建一個對象并將該對象賦給某個變量,變量則包含結(jié)構(gòu)的全部值。復(fù)制包含結(jié)構(gòu)的變量時,將復(fù)
制所有數(shù)據(jù),對新副本所做的任何修改都不會改變舊副本的數(shù)據(jù)。由于結(jié)構(gòu)不使用引用,因此結(jié)構(gòu)沒有標(biāo)識 -- 具有相同數(shù)據(jù)的兩個
值類型實(shí)例是無法區(qū)分的。C# 中的所有值類型本質(zhì)上都繼承自 ValueType,后者繼承自 Object。
【.net程序員面試試題】相關(guān)文章:
程序員面試技巧09-17
程序員的面試技巧10-14
面試中常見的面試試題08-21
Microsoft面試題09-04
iOS面試題07-10
Spring面試試題09-19
經(jīng)典常見的面試試題09-14
公司面試題09-12
hibernate面試題10-18
英語面試題精選06-13