- 相關(guān)推薦
.net程序員面試試題
1. new 關(guān)鍵字用法
(1)new 運算符
用于創(chuàng)建對象和調(diào)用構(gòu)造函數(shù)。
(2)new 修飾符
用于向基類成員隱藏繼承成員。
(3)new 約束
用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。
2.如何把一個Array復(fù)制到ArrayList里
(1) 實現(xiàn)1
string[] s ={ "111", "22222" };
ArrayList list = new ArrayList();
list.AddRange(s);
(2)實現(xiàn)2
string[] s ={ "111", "22222" };
ArrayList list = new ArrayList(s);
3.DataGrid的Datasouse可以連接什么數(shù)據(jù)源
DataTable
DataView
DataSet
DataViewManager
任何實現(xiàn)IListSource接口的組件
任何實現(xiàn)IList接口的組件
4.概述反射和序列化
反射
公共語言運行庫加載器管理應(yīng)用程序域。這種管理包括將每個程序集加載到相應(yīng)的應(yīng)用程序域以及控制每個程序集中類型層次結(jié)
構(gòu)的內(nèi)存布局。
程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態(tài)地創(chuàng)
建類型的實例,將類型綁定到現(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 修飾符有什么特點
sealed 修飾符可以應(yīng)用于類、實例方法和屬性。密封類不能被繼承。密封方法會重寫基類中的方法,但其本身不能在任何派生
類中進一步重寫。當(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è)定項。
結(jié)構(gòu)不能聲明默認構(gòu)造函數(shù)(沒有參數(shù)的構(gòu)造函數(shù))或析構(gòu)函數(shù)。
結(jié)構(gòu)的副本由編譯器自動創(chuàng)建和銷毀,因此不需要使用默認構(gòu)造函數(shù)和析構(gòu)函數(shù)。實際上,編譯器通過為所有字段賦予默認值(
參見默認值表)來實現(xià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)沒有標識 -- 具有相同數(shù)據(jù)的兩個
值類型實例是無法區(qū)分的。C# 中的所有值類型本質(zhì)上都繼承自 ValueType,后者繼承自 Object。
編譯器可以在一個稱為裝箱的過程中將值類型轉(zhuǎn)換為引用類型。
結(jié)構(gòu)具有以下特點:
結(jié)構(gòu)是值類型,而類是引用類型。
向方法傳遞結(jié)構(gòu)時,結(jié)構(gòu)是通過傳值方式傳遞的,而不是作為引用傳遞的。
與類不同,結(jié)構(gòu)的實例化可以不使用 new 運算符。
結(jié)構(gòu)可以聲明構(gòu)造函數(shù),但它們必須帶參數(shù)。
一個結(jié)構(gòu)不能從另一個結(jié)構(gòu)或類繼承,而且不能作為一個類的基。所有結(jié)構(gòu)都直接繼承自 System.ValueType,后者繼承自
System.Object。
結(jié)構(gòu)可以實現(xiàn)接口。
在結(jié)構(gòu)中初始化實例字段是錯誤的。
12.什么叫應(yīng)用程序域?什么是托管代碼?什么是強類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋?
應(yīng)用程序域
應(yīng)用程序域為安全性、可靠性、版本控制以及卸載程序集提供了隔離邊界。應(yīng)用程序域通常由運行庫宿主創(chuàng)建,運行庫宿主負責(zé)
在運行應(yīng)用程序之前引導(dǎo)公共語言運行庫。應(yīng)用程序域提供了一個更安全、用途更廣的處理單元,公共語言運行庫可使用該單元提供
應(yīng)用程序之間的隔離。
托管代碼
使用基于公共語言運行庫的語言編譯器開發(fā)的代碼稱為托管代碼;托管代碼具有許多優(yōu)點,例如:跨語言集成、跨語言異常處理
、增強的安全性、版本控制和部署支持、簡化的組件交互模型、調(diào)試和分析服務(wù)等。
裝箱和拆箱
裝箱和拆箱使值類型能夠被視為對象。對值類型裝箱將把該值類型打包到 Object 引用類型的一個實例中。這使得值類型可以存
儲于垃圾回收堆中。拆箱將從對象中提取值類型。
重載
每個類型成員都有一個唯一的簽名。方法簽名由方法名稱和一個參數(shù)列表(方法的參數(shù)的順序和類型)組成。只要簽名不同,就可
以在一種類型內(nèi)定義具有相同名稱的多種方法。當(dāng)定義兩種或多種具有相同名稱的方法時,就稱作重載。
CTS通用類型系統(tǒng) (common type system)
一種確定公共語言運行庫如何定義、使用和管理類型的規(guī)范。
CLR公共語言運行庫
.NET Framework 提供了一個稱為公共語言運行庫的運行時環(huán)境,它運行代碼并提供使開發(fā)過程更輕松的服務(wù)。
CLS公共語言規(guī)范
要和其他對象完全交互,而不管這些對象是以何種語言實現(xiàn)的,對象必須只向調(diào)用方公開那些它們必須與之互用的所有語言的通
用功能。為此定義了公共語言規(guī)范 (CLS),它是許多應(yīng)用程序所需的一套基本語言功能。
強類型
C# 是強類型語言;因此每個變量和對象都必須具有聲明類型。
13.值類型和引用類型的區(qū)別?
基于值類型的變量直接包含值。將一個值類型變量賦給另一個值類型變量時,將復(fù)制包含的值。這與引用類型變量的賦值不同,
引用類型變量的賦值只復(fù)制對對象的引用,而不復(fù)制對象本身。
所有的值類型均隱式派生自 System.ValueType。
與引用類型不同,從值類型不可能派生出新的類型。但與引用類型相同的是,結(jié)構(gòu)也可以實現(xiàn)接口。
與引用類型不同,值類型不可能包含 null 值。然而,可空類型功能允許將 null 賦給值類型。
每種值類型均有一個隱式的默認構(gòu)造函數(shù)來初始化該類型的默認值。
值類型主要由兩類組成:結(jié)構(gòu)、枚舉
結(jié)構(gòu)分為以下幾類:Numeric(數(shù)值)類型、整型、浮點型、decimal、bool、用戶定義的結(jié)構(gòu)。
引用類型的變量又稱為對象,可存儲對實際數(shù)據(jù)的引用。聲明引用類型的關(guān)鍵字:class、inte***ce、delegate、內(nèi)置引用類型
。 object、string
14.如何理解委托
委托類似于 C++ 函數(shù)指針,但它是類型安全的。
委托允許將方法作為參數(shù)進行傳遞。
委托可用于定義回調(diào)方法。
委托可以鏈接在一起;例如,可以對一個事件調(diào)用多個方法。
方法不需要與委托簽名精確匹配。有關(guān)更多信息,請參見協(xié)變和逆變。
C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作為參數(shù)傳遞,以代替單獨定義的方法。
15.C#中的接口和類有什么異同。
異:
不能直接實例化接口。
接口不包含方法的實現(xiàn)。
接口、類和結(jié)構(gòu)可從多個接口繼承。但是C# 只支持單繼承:類只能從一個基類繼承實現(xiàn)。
類定義可在不同的源文件之間進行拆分。
同:
接口、類和結(jié)構(gòu)可從多個接口繼承。
接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現(xiàn)接口的所有成員。
接口可以包含事件、索引器、方法和屬性。
一個類可以實現(xiàn)多個接口。
16.ASP.net的身份驗證方式有哪些Windows 身份驗證提供程序
提供有關(guān)如何將 Windows 身份驗證與 Microsoft Internet 信息服務(wù) (IIS) 身份驗證結(jié)合使用來確保 ASP.NET 應(yīng)用程序安全的信息。
Forms 身份驗證提供程序
提供有關(guān)如何使用您自己的代碼創(chuàng)建應(yīng)用程序特定的登錄窗體并執(zhí)行身份驗證的信息。使用 Forms 身份驗證的一種簡便方法是
使用 ASP.NET 成員資格和 ASP.NET 登錄控件,它們一起提供了一種只需少量或無需代碼就可以收集、驗證和管理用戶憑據(jù)的方法。
Passport 身份驗證提供程序
提供有關(guān)由 Microsoft 提供的集中身份驗證服務(wù)的信息,該服務(wù)為成員站點提供單一登錄和核心配置
17.活動目錄的作用
Active Directory存儲了有關(guān)網(wǎng)絡(luò)對象的信息,并且讓管理員和用戶能夠輕松地查找和使用這些信息。Active Directory使用了
一種結(jié)構(gòu)化的數(shù)據(jù)存儲方式,并以此作為基礎(chǔ)對目錄信息進行合乎邏輯的分層組織。
18.解釋一下UDDI、WSDL的意義及其作用
UDDI
統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI, Universal Description, Discovery and Integration)是一套基于Web的、分布式的、為Web
服務(wù)提供的信息注冊中心的實現(xiàn)標準規(guī)范,同時也包含一組使企業(yè)能將自身提供的Web服務(wù)注冊以使得別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標準。UDDI 提供了一組基于標準的規(guī)范用于描述和發(fā)現(xiàn)服務(wù),還提供了一組基于因特網(wǎng)的實現(xiàn)。
WSDL
WSDL描述Web服務(wù)的公共接口。這是一個基于XML的關(guān)于如何與Web服務(wù)通訊和使用的服務(wù)描述;
服務(wù) URL 和命名空間
網(wǎng)絡(luò)服務(wù)的類型(可能還包括 SOAP 的函數(shù)調(diào)用,正像我所說過的,WSDL 足夠自如地去描述網(wǎng)絡(luò)服務(wù)的廣泛內(nèi)容)
有效函數(shù)列表
每個函數(shù)的參數(shù)
每個參數(shù)的類型
每個函數(shù)的返回值及其數(shù)據(jù)類型
19.什么是SOAP
SOAP(Simple Object Access Protocol )簡單對象訪問協(xié)議是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠程過程調(diào)用的協(xié)議,是
一個基于XML的協(xié)議。使用SOAP,不用考慮任何特定的傳輸協(xié)議(最常用的還是HTTP協(xié)議),可以允許任何類型的對象或代碼,在任何平臺上,以任何一直語言相互通信。
SOAP 是一種輕量級協(xié)議,用于在分散型、分布式環(huán)境中交換結(jié)構(gòu)化信息。 SOAP 利用 XML 技術(shù)定義一種可擴展的消息處理框架,它提供了一種可通過多種底層協(xié)議進行交換的消息結(jié)構(gòu)。 這種框架的設(shè)計思想是要獨立于任何一種特定的編程模型和其他特定實現(xiàn)的語義。
SOAP 定義了一種方法以便將 XML 消息從 A 點傳送到 B 點。 為此,它提供了一種基于 XML 且具有以下特性的消息處理框架:
1) 可擴展,2) 可通過多種底層網(wǎng)絡(luò)協(xié)議使用,3) 獨立于編程模型。
20.如何部署一個ASP.net頁面
VS 2005和VS 2003都有發(fā)布機制。2003可以發(fā)布然后再復(fù)制部署。
VS2005基本上可以直接部署到對應(yīng)位置。
21.如何理解.net中的垃圾回收機制
.NET Framework 的垃圾回收器管理應(yīng)用程序的內(nèi)存分配和釋放。每次您使用 new 運算符創(chuàng)建對象時,運行庫都從托管堆為該對象分配內(nèi)存。只要托管堆中有地址空間可用,運行庫就會繼續(xù)為新對象分配空間。但是,內(nèi)存不是無限大的。最終,垃圾回收器必須執(zhí)行回收以釋放一些內(nèi)存。垃圾回收器優(yōu)化引擎根據(jù)正在進行的分配情況確定執(zhí)行回收的最佳時間。當(dāng)垃圾回收器執(zhí)行回收時,它檢查托管堆中不再被應(yīng)用程序使用的對象并執(zhí)行必要的操作來回收它們占用的內(nèi)存。
http://www.ardmore-hotel.com/【 .net程序員面試試題】相關(guān)文章:
必備.net面試題及答案08-02
ASP.NET專業(yè)面試試題09-26
ASP.NET面試試題集錦09-26
科技ASP.NET面試題09-26
程序員面試試題09-25
程序員面試題09-25
2016用友.net筆試題分享07-17
銘萬公司.net筆試題08-08
Java程序員面試試題09-25