免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C#綜合筆試題下(上)

1.面向?qū)ο蟮乃枷胫饕ㄊ裁矗?/p>

繼承多態(tài)封裝

●封裝:用抽象的數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,數(shù)據(jù)被保護(hù)在抽象數(shù)據(jù)類型內(nèi)部。

●繼承:子類擁有父類的所有數(shù)據(jù)和操作。

●多態(tài):一個(gè)程序中同名的不同方法共存的情況。

有兩種形式的多態(tài)–重載與重寫。

 

2.什么是ASP.net中的用戶控件

用戶控件就是.ascx擴(kuò)展名的東西嘍,可以拖到不同的頁面中調(diào)用,以節(jié)省代碼.比如登陸可能在多個(gè)頁面上有,就可以做成

用戶控件,但是有一個(gè)問題就是用戶控件拖到不同級(jí)別的目錄下后里面的圖片等的相對(duì)路徑會(huì)變得不準(zhǔn)確,需要自已寫方

法調(diào)整.

問這樣的問題,一般是迷惑你.因?yàn)樾率诌€是分不清楚用戶控件和服務(wù)器控件(也稱自定義控件)..用戶控件一般用在內(nèi)容多

為靜態(tài),或者少許會(huì)改變的情況下..用的比較大..類似ASP中的include..但是功能要強(qiáng)大的多..

在C#中,string str = null 與 string str = “”的區(qū)別。
答:string str = null 是不給他分配內(nèi)存空間,而string str = "" 給它分配長度為空字符串的內(nèi)存空間
請(qǐng)?jiān)斒鲈赿otnet中類(class)與結(jié)構(gòu)(struct)的異同
Class可以被實(shí)例化,屬于引用類型,是分配在內(nèi)存的堆上的,Struct屬于值類型,是分配在內(nèi)存的棧上的.

DataReader和DataSet的異同
DataReader和DataSet最大的區(qū)別在于,DataReader使用時(shí)始終占用SqlConnection,在線操作數(shù)據(jù)庫..任何對(duì)SqlConnection

的操作都會(huì)引發(fā)DataReader的異常..因?yàn)镈ataReader每次只在內(nèi)存中加載一條數(shù)據(jù),所以占用的內(nèi)存是很小的..因

為DataReader的特殊性和高性能.所以DataReader是只進(jìn)的..你讀了第一條后就不能再去讀取第一條了..
DataSet則是將數(shù)據(jù)一次性加載在內(nèi)存中.拋棄數(shù)據(jù)庫連接..讀取完畢即放棄數(shù)據(jù)庫連接..因?yàn)镈ataSet將數(shù)據(jù)全部加載在

內(nèi)存中.所以比較消耗內(nèi)存...但是確比DataReader要靈活..可以動(dòng)態(tài)的添加行,列,數(shù)據(jù).對(duì)數(shù)據(jù)庫進(jìn)行回傳更新操作.

8.C#中的接口和類有什么異同。

接口和類都是類,不同的事,接口只包含方法或?qū)傩缘穆暶?,不包含具體實(shí)現(xiàn)方法的代碼,接口可以實(shí)現(xiàn)多繼承,而類

只能是單繼承,繼承接口的類必須實(shí)現(xiàn)接口中聲明的方法或?qū)傩?。接口主要定義一種規(guī)范,統(tǒng)一調(diào)用方法,在大型項(xiàng)目

中接口正發(fā)揮日益重要的作用

類是方法功能的實(shí)現(xiàn)和集合,接口是規(guī)范類.約束類.
接口,是可以多繼承,類只有單繼承.接口強(qiáng)調(diào)了你必須實(shí)現(xiàn),而沒有具本實(shí)現(xiàn)的方法和虛類有點(diǎn)相似

Override與重載有什么區(qū)別?
一個(gè)是重寫父類函數(shù),一個(gè)是同一個(gè)函數(shù)的幾種形式

觸發(fā)器的作用

觸發(fā)器可以查詢其它表,而且可以包含復(fù)雜的 SQL 語句。它們主要用于強(qiáng)制復(fù)雜的業(yè)務(wù)規(guī)則或要求。觸發(fā)器還有助于

強(qiáng)制引用完整性,以便在添加、更新或刪除表中的行時(shí)保留表之間已定義的關(guān)系。
保證數(shù)據(jù)庫操作變更能接到通知

<%# %> 和 <% %> 有什么區(qū)別?
<%# %>表示綁定的數(shù)據(jù)源
<% %>是服務(wù)器端代碼塊

常見的設(shè)計(jì)模式

抽象工廠模式、適配器模式、外觀模式 command命令模式,橋接模式,組合模式,裝飾模式,狀態(tài)模式,備忘錄模式等。
軟件設(shè)計(jì)模式太多,就我的理解簡單說一下最常見的MVC模式。
MVC模式是1996年由Buschmann提出的:
模型(Model):就是封裝數(shù)據(jù)和所有基于對(duì)這些數(shù)據(jù)的操作。
視圖(View):就是封裝的是對(duì)數(shù)據(jù)顯示,即用戶界面。
控制器(Control):就是封裝外界作用于模型的操作和對(duì)數(shù)據(jù)流向的控制等。

 

3.什么叫應(yīng)用程序域?什么是受管制的代碼?什么是強(qiáng)類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分

別作何解釋?

 

4.列舉一下你所了解的XML技術(shù)及其應(yīng)用

 

5.值類型和引用類型的區(qū)別?寫出C#的樣例代碼。

在dotnet中有兩大類數(shù)據(jù)類型,即值類型和引用類型,值類型存貯在棧中,而引用類型存貯在動(dòng)態(tài)的堆中,棧是先進(jìn)先

出的有系統(tǒng)管理的空間,而堆是由應(yīng)用程序控制的可隨時(shí)申請(qǐng)和釋放該空間,在Donnet中一般情況下有垃圾收集器處理

,他們的不同導(dǎo)致在編程上的不同。
        例:                     StringBuilder a=new StringBuilder();//將StringBuilder的一個(gè)首地址傳給a
                                     StringBuilder b=a;//將StringBuilder的一個(gè)首地址傳給b
                                      b.Append("mxh");
                                      Console.WriteLine(a);
                                       a=null;
                                       Console.WriteLine(b);
               輸出結(jié)果:mxh
                                   mxh
       "a=null"的意思是:a的引用置為空但此時(shí)StringBuilder的堆空間并沒有被釋放,因此在此之后,輸出b時(shí),仍然可以

輸出mxh

 

6.ADO.net中常用的對(duì)象有哪些?分別描述一下。
DataSet對(duì)象:表示內(nèi)存中數(shù)據(jù)的緩存,可以把它想像成一個(gè)臨時(shí)的數(shù)據(jù)庫,它里可以存多個(gè)表(DataTable),而且是斷開式的,不用每進(jìn)行一次操作就對(duì)數(shù)據(jù)庫進(jìn)行更新,從而提高了效率。
DataReader對(duì)象:它與DataSet最大的不同是有連接式的,每次對(duì)數(shù)據(jù)庫進(jìn)行存取都會(huì)影響到數(shù)據(jù)庫。
Connection對(duì)象:用于連接數(shù)據(jù)庫的對(duì)象,表示到數(shù)據(jù)源的一個(gè)唯一的連接。
Command對(duì)象:表示要對(duì)數(shù)據(jù)庫執(zhí)行的一個(gè)SQL語句或一個(gè)存儲(chǔ)過程。
DataAdapter對(duì)象:該對(duì)象是與DataSet配合使用的對(duì)象,用于把表填充到DataSet,和更新DataSet等。

 

7.如何理解委托?

 

C# 中的委托類似于 C 或 C++ 中的函數(shù)指針。使用委托使程序員可以將方法引用封裝在委托對(duì)象內(nèi)。然后可以將該委托

對(duì)象傳遞給可調(diào)用所引用方法的代碼,而不必在編譯時(shí)知道將調(diào)用哪個(gè)方法。與 C 或 C++ 中的函數(shù)指針不同,委托是

面向?qū)ο蟆㈩愋桶踩?,并且是安全的?/p>

 

9.。net中讀寫數(shù)據(jù)庫需要用到哪些類?他們的作用

 

10.UDP連接和TCP連接的異同。

 

11.ASP.net的身份驗(yàn)證方式有哪些?分別是什么原理?

window驗(yàn)證:為每個(gè)用戶開啟window賬號(hào),驗(yàn)證其身份.安全性較高.
forms驗(yàn)證:為每個(gè)登陸用戶寫入一個(gè)身份驗(yàn)證票據(jù)..在web使用最廣的驗(yàn)證方式..靈活方便.

 

12.進(jìn)程和線程分別怎么理解?

 

13.什么是code-Behind技術(shù)。

新建一個(gè)VS.NET下的項(xiàng)目..看到ASPX,RESX和CS三個(gè)后綴的文件了嗎??這個(gè)就是代碼分離.實(shí)現(xiàn)了HTML代碼和服務(wù)器代

碼分離.方便代碼編寫和整理.

 

14.活動(dòng)目錄的作用。

活動(dòng)目錄是window2000的最重要的功能.可以將用戶信息全部集成起來,登陸以后可以訪問多個(gè)不同的網(wǎng)絡(luò)服務(wù)..

.

15..net中讀寫XML的類都?xì)w屬于哪些命名空間?

System.XML類

 

16.解釋一下UDDI、WSDL的意義及其作用。

 

17.什么是SOAP,有哪些應(yīng)用。

simple object access protocal,簡單對(duì)象接受協(xié)議.以xml為基本編碼結(jié)構(gòu),建立在已有通信協(xié)議上(如http,不過據(jù)說ms在搞最

底層的架構(gòu)在tcp/ip上的soap)的一種規(guī)范
是微軟大力推廣的Web Service使用的協(xié)議..

 

18.如何部署一個(gè)ASP.net頁面。

 

19.如何理解.net中的垃圾回收機(jī)制。

 

如果發(fā)現(xiàn)內(nèi)存不夠,則垃圾回收器,將全部對(duì)象作為無效對(duì)象(被回收對(duì)象),然后先將全局變量,static,處于活動(dòng)中的局部變

量,以及當(dāng)前CG指針指向的對(duì)象放入一個(gè)表中.然后
會(huì)搜索新列表中的對(duì)象所引用的對(duì)象.加入列表中,其他沒有被加入列表的對(duì)象都會(huì)被回收.

 

20.常用的調(diào)用webservice方法有哪些?

我一般用的是WSDL..或者web引用..

 

21列舉一下你所了解的XML技術(shù)及其應(yīng)用
.xml可以用來做網(wǎng)頁(xslt) xml可以當(dāng)作數(shù)據(jù)庫 xml可以用來保存對(duì)象的系列化
xml用于配置,用于保存靜態(tài)數(shù)據(jù)類型.接觸XML最多的是web Services..和config

 

C#中 property 與 attribute的區(qū)別,他們各有什么用處,這種機(jī)制的好處在哪里?
一個(gè)是屬性,用于存取類的字段,一個(gè)是特性,用來標(biāo)識(shí)類,方法等的附加性質(zhì)

 

C#可否對(duì)內(nèi)存進(jìn)行直接的操作?
可以

維護(hù)數(shù)據(jù)庫的完整性、一致性、你喜歡用觸發(fā)器還是自寫業(yè)務(wù)邏輯?為什么

 

觸發(fā)器,性能好,事務(wù)性

ADO。NET相對(duì)于ADO等主要有什么改進(jìn)?

新增dataset等,不需要隨時(shí)保持連接,性能提高

 

ASP。NET與ASP相比,主要有哪些進(jìn)步?
asp解釋型,aspx編譯型,性能提高,有利于保護(hù)源碼

 

C#中的委托是什么?事件是不是一種委托?
委托是一種安全的函數(shù)指針,事件是一種消息機(jī)制

 

你對(duì)XMLHTTP、WEBSERVICE 了解嗎?簡單描述其特點(diǎn)、作用
xmlhttp可以主動(dòng)獲取遠(yuǎn)端web代碼,類似HttpWebRequest

接口和抽象類有什么區(qū)別?你選擇使用接口和抽象類的依據(jù)是什么?
接口用于規(guī)范,抽象類用于共性。

存儲(chǔ)過程和函數(shù)的區(qū)別
存儲(chǔ)過程是編譯好的存儲(chǔ)在數(shù)據(jù)庫的操作,函數(shù)不用說了.

事務(wù)是什么?
具有原子性特點(diǎn)

游標(biāo)的作用?如何知道游標(biāo)已經(jīng)到了最后?
指示當(dāng)前記錄的位置,檢查NULL

觸發(fā)器分為事前觸發(fā)和事后觸發(fā),這兩種觸發(fā)有和區(qū)別。語句級(jí)觸發(fā)和行級(jí)觸發(fā)有何區(qū)別。
一個(gè)是操作前,一個(gè)是操作后

請(qǐng)說明在.net中常用的幾種頁面間傳遞參數(shù)的方法,并說出他們的優(yōu)缺點(diǎn)。
session(viewstate) 簡單,但易丟失
application 全局
cookie 簡單,但可能不支持,可能被偽造
input type="hidden" 簡單,可能被偽造
url參數(shù) 簡單,顯示于地址欄,長度有限
數(shù)據(jù)庫 穩(wěn)定,安全,但性能相對(duì)弱

請(qǐng)說明.net中的錯(cuò)誤處理機(jī)制,并舉例
try catch final

請(qǐng)說出強(qiáng)名的含義
具有自己的key,可以在GAC為公用

請(qǐng)列出c#中幾種循環(huán)的方法,并指出他們的不同
for wile foreach

請(qǐng)指出.net中所有類型的基類
object

請(qǐng)指出GAC的含義
全局程序集緩存

值類型與引用類型有什么區(qū)別?
值和指針的區(qū)別

怎樣理解靜態(tài)變量?
所有實(shí)例公用一個(gè)的變量

向服務(wù)器發(fā)送請(qǐng)求有幾種方式?
get post

如果在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進(jìn)行處理


input type=""
url
數(shù)據(jù)庫

用.net做B/S結(jié)構(gòu)的系統(tǒng),您是用幾層結(jié)構(gòu)來開發(fā),每一層之間的關(guān)系以及為什么要這樣分層?
三層,表現(xiàn),邏輯,數(shù)據(jù), 安全性,維護(hù)性

軟件開發(fā)過程一般有幾個(gè)階段?每個(gè)階段的作用?
需求分析,架構(gòu)設(shè)計(jì),代碼編寫,QA,部署

通過超鏈接怎樣傳遞中文參數(shù)?
URLEncode URLDecode

請(qǐng)編程遍歷頁面上所有TextBox控件并給它賦值為string.Empty
foreach

有哪幾種方法可以實(shí)現(xiàn)一個(gè)類存取另外一個(gè)類的成員函數(shù)及屬性,并請(qǐng)舉列來加以說明和分析.
同一個(gè)名稱控件直接,或者反射

如果需記錄類的實(shí)例個(gè)數(shù),該如何實(shí)現(xiàn),請(qǐng)寫一個(gè)簡單的類于以證明.
const static int classNum=0;
classNum++;

A類是B類的基類,并且都有自己的構(gòu)造,析構(gòu)函數(shù),請(qǐng)舉例證明B類從實(shí)例化到消亡過程中構(gòu)造,析構(gòu)函數(shù)的執(zhí)行過程.
構(gòu)造先父后子,析夠反之

需要實(shí)現(xiàn)對(duì)一個(gè)字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話,僅保留一個(gè)空格,即允

許字符串中間有多個(gè)空格,但連續(xù)的空格數(shù)不可超過一個(gè).
string inputStr=" xx xx ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");

在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫出你所知道的意義?

using 指令 和語句 new 創(chuàng)建實(shí)例 new 隱藏基類中方法
using 引入名稱空間或者使用非托管資源
new 新建實(shí)例或者隱藏父類方法

談?wù)勵(lì)惡徒Y(jié)構(gòu)的區(qū)別?
類是引用類型、結(jié)構(gòu)是值類型

什么叫做SQL注入,如何防止?請(qǐng)舉例說明。
利用sql關(guān)鍵字對(duì)網(wǎng)站進(jìn)行攻擊。過濾關(guān)鍵字'等

下面這段代碼輸出什么?為什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");

寫一個(gè)實(shí)現(xiàn)對(duì)一段字符串翻轉(zhuǎn)的方法,附加一些條件,如其中包括“,”、“.”,對(duì)其設(shè)計(jì)測試用例
inputStr=inputStr.ToCharArray().Reverse().ToString();

什么是反射?
動(dòng)態(tài)獲取程序集信息

用Singleton如何寫設(shè)計(jì)模式
static屬性里面new ,構(gòu)造函數(shù)private

C#中的垃圾回收機(jī)制是怎樣的?
三個(gè)generation,當(dāng)每個(gè)generation內(nèi)存滿了的時(shí)候檢查引用,無引用就回收內(nèi)存

什么是Application Pool?
Web應(yīng)用,類似Thread Pool,提高并發(fā)性能

鏈表和數(shù)組的區(qū)別,各有什么優(yōu)缺點(diǎn).
一個(gè)可以動(dòng)態(tài)增長,一個(gè)固定(VB中可以Redim),性能數(shù)組教好

什么是友元函數(shù)?
friendly聲明,可以訪問protect級(jí)別方法

什么是虛函數(shù)?
可以被重寫

什么是抽象函數(shù)?
必須被重寫

什么是內(nèi)存泄漏,怎樣最簡單的方法判斷被存泄漏 ?
C++,C中忘了釋放內(nèi)存,內(nèi)存不會(huì)再次分配

1SQL Server的兩種索引是何形式?索引的作用?索引的優(yōu)缺點(diǎn)?
cluster和非cluster,加速查找,占用額外控件,維護(hù)索引耗費(fèi)時(shí)間

什么是XML?
可擴(kuò)展標(biāo)記語言,可以做配置文件,可以傳輸數(shù)據(jù),可以存儲(chǔ)數(shù)據(jù)

簡述 private、 protected、 public、 internal 修飾符的訪問權(quán)限。
private : 私有成員, 在類的內(nèi)部才可以訪問。
protected : 保護(hù)成員,該類內(nèi)部和繼承類中可以訪問。
public : 公共成員,完全公開,沒有訪問限制。
internal: 在同一命名空間內(nèi)可以訪問。

進(jìn)程和線程的區(qū)別

進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的單位;線程是CPU調(diào)度和分派的單位,一個(gè)進(jìn)程可以有多個(gè)線程,這些線程共享這個(gè)

進(jìn)程的資源。

成員變量和成員函數(shù)前加static的作用

它們被稱為常成員變量和常成員函數(shù),又稱為類成員變量和類成員函數(shù)。分別用來反映類的狀態(tài)。比如類成員變量可以

用來統(tǒng)計(jì)類實(shí)例的數(shù)量,類成員函數(shù)負(fù)責(zé)這種統(tǒng)計(jì)的動(dòng)作。

malloc和new的區(qū)別

new是C++的關(guān)鍵字。malloc在分配內(nèi)存時(shí)必須按給出的字節(jié)分配,new可以按照對(duì)象的大小自動(dòng)分配,并且能調(diào)用構(gòu)造

函數(shù)??梢哉fnew是對(duì)象的對(duì)象,而malloc不是。本質(zhì)上new分配內(nèi)存時(shí),還會(huì)在實(shí)際內(nèi)存塊的前后加上附加信息,所

以new所使用的內(nèi)存大小比malloc多。

堆和棧的區(qū)別

棧:由編譯器自動(dòng)分配、釋放。在函數(shù)體中定義的變量通常在棧上。
堆:一般由程序員分配釋放。用new、malloc等分配內(nèi)存函數(shù)分配得到的就是在堆上。
棧是機(jī)器系統(tǒng)提供的數(shù)據(jù)結(jié)構(gòu),而堆則是C/C++函數(shù)庫提供的。
棧是系統(tǒng)提供的功能,特點(diǎn)是快速高效,缺點(diǎn)是有限制,數(shù)據(jù)不靈活;而棧是函數(shù)庫提供的功能,特點(diǎn)是靈活方便,數(shù)

據(jù)適應(yīng)面廣泛,但是效率有一定降低。棧是系統(tǒng)數(shù)據(jù)結(jié)構(gòu),對(duì)于進(jìn)程/線程是唯一的;堆是函數(shù)庫內(nèi)部數(shù)據(jù)結(jié)構(gòu),不一

定唯一。不同堆分配的內(nèi)存無法互相操作。??臻g分靜態(tài)分配和動(dòng)態(tài)分配兩種。靜態(tài)分配是編譯器完成的,比如自動(dòng)變

量(auto)的分配。動(dòng)態(tài)分配由alloca函數(shù)完成。棧的動(dòng)態(tài)分配無需釋放(是自動(dòng)的),也就沒有釋放函數(shù)。為可移植的程序

起見,棧的動(dòng)態(tài)分配操作是不被鼓勵(lì)的!堆空間的分配總是動(dòng)態(tài)的,雖然程序結(jié)束時(shí)所有的數(shù)據(jù)空間都會(huì)被釋放回系統(tǒng)

,但是精確的申請(qǐng)內(nèi)存/釋放內(nèi)存匹配是良好程序的基本要素。

在.Net中,類System.Web.UI.Page 可以被繼承么?
可以

你覺得ASP.NET 2.0(VS2005)和你以前使用的開發(fā)工具(.Net 1.0或其他)有什么最大的區(qū)別?你在以前的平臺(tái)上使

用的哪些開發(fā)思想(pattern / architecture)可

1 ASP.NET 2.0 把一些代碼進(jìn)行了封裝打包,所以相比1.0相同功能減少了很多代碼.
2 同時(shí)支持代碼分離和頁面嵌入服務(wù)器端代碼兩種模式,以前1.0版本,.NET提示幫助只有在分離的代碼文件,無法在頁面嵌

入服務(wù)器端代碼獲得幫助提示,
3 代碼和設(shè)計(jì)界面切換的時(shí)候,2.0支持光標(biāo)定位.這個(gè)我比較喜歡
4 在綁定數(shù)據(jù),做表的分頁.UPDATE,DELETE,等操作都可以可視化操作,方便了初學(xué)者
5, 在ASP.NET中增加了40多個(gè)新的控件,減少了工作量

.net的錯(cuò)誤處理機(jī)制是什么
.net錯(cuò)誤處理機(jī)制采用try->catch->finally結(jié)構(gòu),發(fā)生錯(cuò)誤時(shí),層層上拋,直到找到匹配的Catch為止。

重載與覆蓋的區(qū)別
1、方法的覆蓋是子類和父類之間的關(guān)系,是垂直關(guān)系;方法的重載是同一個(gè)類中方法之間的關(guān)系,是水平關(guān)系。
2、覆蓋只能由一個(gè)方法,或只能由一對(duì)方法產(chǎn)生關(guān)系;方法的重載是多個(gè)方法之間的關(guān)系。
3、覆蓋要求參數(shù)列表相同;重載要求參數(shù)列表不同。
4、覆蓋關(guān)系中,調(diào)用那個(gè)方法體,是根據(jù)對(duì)象的類型(對(duì)象對(duì)應(yīng)存儲(chǔ)空間類型)來決定;重載關(guān)系,是根據(jù)調(diào)用時(shí)的

實(shí)參表與形參表來選擇方法體的。

簡要談一下您對(duì)微軟.NET 構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。
WS主要是可利用HTTP,穿透防火墻。而Remoting可以利用TCP/IP,二進(jìn)制傳送提高效率。

C#中的委托是什么?事件是不是一種委托?
委托是一種安全的函數(shù)指針,事件是一種消息機(jī)制

new有幾種用法
第一種:new Class();
第二種:覆蓋方法
public new XXXX(){}
第三種:new 約束指定泛型類聲明中的任何類型參數(shù)都必須有公共的無參數(shù)構(gòu)造函數(shù)。
如何把一個(gè)array復(fù)制到arrayList里
foreach( object o in array )arrayList.Add(o);
datagrid.datasouse可以連接什么數(shù)據(jù)源
dataset,datatable,dataview , IList
概述反射和序列化
反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對(duì)象。您可以使

用反射動(dòng)態(tài)地創(chuàng)建類型的實(shí)例,將類型綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象中獲取類型。然后,可以調(diào)用類型的方法或訪問

其字段和屬性
序列化:序列化是將對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^程。例如,可以序列化一個(gè)對(duì)象,然后使用 HTTP 通過 Internet 在客

戶端和服務(wù)器之間傳輸該對(duì)象。在另一端,反序列化將從該流重新構(gòu)造對(duì)象。
概述o/r mapping 的原理>
利用反射,配置 將類于數(shù)據(jù)庫表映射
用sealed修飾的類有什么特點(diǎn)
sealed 修飾符用于防止從所修飾的類派生出其它類。如果一個(gè)密封類被指定為其他類的基類,則會(huì)發(fā)生編譯時(shí)錯(cuò)誤。
密封類不能同時(shí)為抽象類。
sealed 修飾符主要用于防止非有意的派生,但是它還能促使某些運(yùn)行時(shí)優(yōu)化。具體說來,由于密封類永遠(yuǎn)不會(huì)有任何派

生類,所以對(duì)密封類的實(shí)例的虛擬函數(shù)成員的調(diào)用可以轉(zhuǎn)換為非虛擬調(diào)用來處理。

什么叫應(yīng)用程序域?什么是受管制的代碼?什么是強(qiáng)類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別

作何解釋?
答:裝箱就是把值類型轉(zhuǎn)成引用類型,從MS IL角度看好像是boxing,沒記錯(cuò)的話是把值從堆棧轉(zhuǎn)到堆中.拆箱相反,重載就是

指一個(gè)方法名同,參數(shù)個(gè)數(shù)不同,返回值可以相同的方法.CLR是通用語言運(yùn)行時(shí),其它的不清楚.
如何理解委托?
答:據(jù)說相當(dāng)于函數(shù)指針,定義了委托就可以在不調(diào)用原方法名稱的情況下調(diào)用那個(gè)方法.
委托具有以下特點(diǎn):
委托類似于 C++ 函數(shù)指針,但它是類型安全的。
委托允許將方法作為參數(shù)進(jìn)行傳遞。
委托可用于定義回調(diào)方法。
委托可以鏈接在一起;例如,可以對(duì)一個(gè)事件調(diào)用多個(gè)方法。
方法不需要與委托簽名精確匹配。有關(guān)更多信息,請(qǐng)參見協(xié)變和逆變。
C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作為參數(shù)傳遞,以代替單獨(dú)定義的方法。
UDP連接和TCP連接的異同。
前者只管傳,不管數(shù)據(jù)到不到,無須建立連接.后者保證傳輸?shù)臄?shù)據(jù)準(zhǔn)確,須要連結(jié).
進(jìn)程和線程分別怎么理解?
進(jìn)程是老子,線程是兒子,沒有老子就沒有兒子,一個(gè)老子可以有多個(gè)兒子.一個(gè)兒子可以成為別人的兒子,一個(gè)老子也可以

為別的老子生兒子.
什么是SOAP,有哪些應(yīng)用。
答:SOAP(Simple Object Access Protocol )簡單對(duì)象訪問協(xié)議是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠(yuǎn)程過程調(diào)用

的協(xié)議,是一個(gè)基于XML的協(xié)議。使用SOAP,不用考慮任何特定的傳輸協(xié)議(最常用的還是HTTP協(xié)議),可以允許任

何類型的對(duì)象或代碼,在任何平臺(tái)上,以任何一直語言相互通信。這種相互通信采用的是XML格式的消息.

1. 填空: (1)面向?qū)ο蟮恼Z言具有___繼承性、封裝性、多態(tài)性。

(2)能用foreach遍歷訪問的對(duì)象需要實(shí)現(xiàn) IEnumerable接口或聲明GetEnumerator 方法的類型

      (3)列舉ADO.net中的五個(gè)主要對(duì)象

Command、Connection、DataSet、DataAdapter、DataReader。

 

2. 不定項(xiàng)選擇:

 

(1) 以下敘述正確的是:

 

      A. 接口中可以有虛方法。     B. 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。

      C. 接口不能被實(shí)例化。       D. 接口中可以包含已實(shí)現(xiàn)的方法。

 

(2) 從數(shù)據(jù)庫讀取記錄,你可能用到的方法有:

 

      A. ExecuteNonQuery            B. ExecuteScalar

 

      C. Fill                        D. ExecuteReader

 

3. 簡述 private、 protected、 public、 internal 修飾符的訪問權(quán)限。

 

 

4. 寫出一條Sql語句:取出表A中第31到第40記錄(SQLServer, 以自動(dòng)增長的ID作為主鍵, 注意:ID

可能不是連續(xù)的。)

 

 

5 .列舉ASP.NET 頁面之間傳遞值的幾種方式。

 

三種比較常見的方式,一種是可以通過用QueryString來傳送相應(yīng)的值,再一種是通過session變量來傳送相應(yīng)的值,還有

就是通過Server.Transfer方法來實(shí)現(xiàn)

 

(1)queryString  
(2)session  
(3)cookie  
(4)server.transfer  
(5)hidden   control/view   state  
(6)static   member.  
(7)cache  
(8)application  
(9)DataBase  
(10)xml   or   other   Files  
(11)XMLHTTP   or   Hidden   iFrame/frame  
(12)Context.user.identity  
   
我正在做一個(gè)通用提示葉面,所有葉面出現(xiàn)問題都要,傳遞幾個(gè)變量字符串到同一個(gè)葉面 hitMsg.aspx 變量字符串包括

提示語言,即將跳轉(zhuǎn)的葉面,跳轉(zhuǎn)時(shí)間。在1-11種方案中哪個(gè)更好些?  
(1)queryString的毛病是無法傳遞很長字符串,比如系統(tǒng)錯(cuò)誤信息往往就一整個(gè)屏幕。  
(2)session的毛病是不能過多使用,依賴Cookie,容易丟失。  
(3)cookie的毛病是依賴客戶端設(shè)置,不可靠。  
(4)server.transfer的毛病是接收葉面要為發(fā)送葉面準(zhǔn)備好,只能定制專門一個(gè)葉面接受定制好的葉面。  
不能是一個(gè)葉面接受任何葉面。  
(5)hidden   control/view   state只能傳遞本頁。除非特殊制作。  
(6)static   member.無法保證線程安全,可能會(huì)此處栽瓜他處得豆。  
(7)cache不適合使用一次就扔的變量。  
(8)application全局的,開銷大。  
(9)DataBase全局固化的,開銷更大,除非做日志跟蹤。  
(10)xml   or   other   Files全局固化的,開銷大,除非做日志跟蹤。  
(11)XMLHTTP   or   Hidden   iFrame/frame,做這個(gè)過于煩瑣。  
(12)Context這個(gè)占用了用戶id,不適合做這個(gè)。

 

6. 寫出程序的輸出結(jié)果

 

class Class1 {

       private string str = "Class1.str";

       private int i = 0;

       static void StringConvert(string str) {

           str = "string being converted.";

       }

       static void StringConvert(Class1 c) {

           c.str = "string being converted.";

       }

       static void Add(int i) {

           i++;

       }

       static void AddWithRef(ref int i) {

           i++;

       }

       static void Main() {

           int i1 = 10;

           int i2 = 20;

           string str = "str";

           Class1 c = new Class1();

           Add(i1);

           AddWithRef(ref i2);

           Add(c.i);

           StringConvert(str);         

           StringConvert(c);

           Console.WriteLine(i1);

           Console.WriteLine(i2);

           Console.WriteLine(c.i);

           Console.WriteLine(str);

           Console.WriteLine(c.str);

       }  

    }

 

 

7.寫出程序的輸出結(jié)果

 

public abstract class A  

{

        public A()  

       {

            Console.WriteLine('A');

        }

        public virtual void Fun()  

       {

            Console.WriteLine("A.Fun()");

        }

}

 

public class B: A  

{

        public B()

       {

            Console.WriteLine('B');

        }

 

        public new void Fun()  

       {

            Console.WriteLine("B.Fun()");

        }

 

        public static void Main()  

       {

           A a = new B();

           a.Fun();

        }

}

 

 

8.      寫出程序的輸出結(jié)果:

public class A  

{

        public virtual void Fun1(int i)

       {

           Console.WriteLine(i);

        }

 

        public void Fun2(A a)   

       {

            a.Fun1(1);

            Fun1(5);

        }

}

 

 

public class B : A  

{

        public override void Fun1(int i)    

       {

            base.Fun1 (i + 1);

        }

 

        public static void Main()   

       {

            B b = new B();

            A a = new A();

            a.Fun2(b);

            b.Fun2(a);          

        }

}

 

 

 

9. 一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34......

求第30位數(shù)是多少,用遞歸算法實(shí)現(xiàn)。(C#語言)

-------------------------------------------

a0   =   0,a1   =   1,An   =   An-1   +   An-2(n>=2)  
int[]   iArray   =   new   int[31];  
iArray[0]   =   0;  
iArray[1]   =   1;  
   
for   (int   i   =   2;   i   <=   30;   i++)  
{  
        iArray[i]   =   iArray[i   -   1]   +   iArray[i   -   2];  
}  
   ---------------參考答案二---------------------------------

int   i=0,ii=1,s=1,num=0;  
while(num<=30)  
{  
s=i+ii;  
Response.Write(i+"+"+ii+"="+s+"<br>");  
if(s==1)  
{  
i=1;  
}  
else  
{  
i=s-i;  
}  
ii=s;  
num++;  
}

========================

 

10. 程序設(shè)計(jì): 貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。(C#語言)

 

要求: 1.要有聯(lián)動(dòng)性,老鼠和主人的行為是被動(dòng)的。

 

2.考慮可擴(kuò)展性,貓的叫聲可能引起其他聯(lián)動(dòng)效應(yīng)。

三個(gè)類,貓,老鼠和主人

 

public sealed class Cat

{

   // 貓叫時(shí)引發(fā)的事件

   public event EventHandler Calling;

 

   public void Call()

   {

       Console.WrietLine("貓叫了...");

       if(Calling != null) // 檢查是否有事件注冊(cè)

           Calling(this, EventArgs.Empty); // 調(diào)用事件注冊(cè)的方法。

   }

}

// 老鼠,提供一個(gè)方法表示逃跑

public sealed calss Mouse

{

    public void Escape(object sender, EventArgs e)

    {

         Console.WriteLine("老鼠逃跑了...");

    }

}

 

// 主人,發(fā)生貓叫的時(shí)候驚醒

public sealed class Master

{

    public void Wakened(object sender, EventArgs e)

    {

        Console.WriteLine("主人驚醒了...);

    }

}

// 用于測試的執(zhí)行方法

// 程序入口點(diǎn)

public static Program

{

    public static int Main(string[] args)

    {

        // 建立貓

        Cat cat = new Cat();

        // 建立老鼠

        Mouse mouse = new Mouse();

        // 建立主人

        Master master = new Master();

     

        // 注冊(cè)事件

        cat.Calling += new EventHandler(mouse.Escape);

        cat.Calling += new EventHandler(master.Wakened);

 

        // 貓開始叫

        cat.Call();

    }

}

 

要點(diǎn):1. 聯(lián)動(dòng)效果,運(yùn)行代碼只要執(zhí)行Cat.Cryed()方法。2. 對(duì)老鼠和主人進(jìn)行抽象
評(píng)分標(biāo)準(zhǔn): <1>.構(gòu)造出Cat、Mouse、Master三個(gè)類,并能使程序運(yùn)行(2分)
                 <2>從Mouse和Master中提取抽象(5分)
                 <3>聯(lián)動(dòng)效應(yīng),只要執(zhí)行Cat.Cryed()就可以使老鼠逃跑,主人驚醒。(3分)


    public interface Observer
    {
        void Response();    //觀察者的響應(yīng),如是老鼠見到貓的反映
    }
    public interface Subject
    {
        void AimAt(Observer obs); //針對(duì)哪些觀察者,這里指貓的要撲捉的對(duì)象---老鼠
    }
    public class Mouse : Observer
    {
        private string name;
        public Mouse(string name, Subject subj)
        {          
            this.name = name;
            subj.AimAt(this);
        }
       
        public void Response()
        {
            Console.WriteLine(name + " attempt to escape!");
        }
    }
    public class Master : Observer
    {  
        public Master(Subject subj)
        {          
            subj.AimAt(this);
        }
       
        public void Response()
        {
            Console.WriteLine("Host waken!");
        }
    }

    public class Cat : Subject
    {
        private ArrayList observers;
        public Cat()
        {  
            this.observers = new ArrayList();
        }
        public void AimAt(Observer obs)
        {
            this.observers.Add(obs);
        }
        public void Cry()
        {
            Console.WriteLine("Cat cryed!");
            foreach (Observer obs in this.observers)
            {
                obs.Response();
            }
        }
    }
    class MainClass
    {      
        static void Main(string[] args)
        {
            Cat cat = new Cat();
            Mouse mouse1 = new Mouse("mouse1", cat);
            Mouse mouse2 = new Mouse("mouse2", cat);
            Master master = new Master(cat);
            cat.Cry();
        }
    }

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
c#關(guān)鍵字
面向?qū)ο蟮木幊袒A(chǔ)
.NET面試筆試中的對(duì)象
C# 中類的成員有哪些?
C# 類中方法、屬性、事件的類型關(guān)鍵字使用方法
默認(rèn)構(gòu)造函數(shù)的作用(“A”方法沒有采用“0”個(gè)參數(shù)的重載。)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服