版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
NET面試題大全,包括微軟、華為、中興等大企業(yè)的面試真
題
簡要地寫出一個.NETRemoting的示例
【考點】
.NETRemoting程序的原理,.NETRemoting的基本編寫方法。
【出現(xiàn)頻率】
★★☆☆☆
【解答】
在VS2008中添加新的類庫項目,并命名為NctRmClass,將所屬解決方案命名為NctRm,
勾選“創(chuàng)建解決方案的目錄這樣,NeiRmClass類庫項目目錄即屬于Ne【Rm解決方案,并
可以繼續(xù)向該解決方案添加更多的其他相關(guān)項目。類庫項目在這里僅月于創(chuàng)建一個遠(yuǎn)程對象
的類,將項目中的cs文件命名為RmObj,其包含的類型同樣為RmObj,編寫RmObj.cs如
代碼13.4所示。
代碼13.4遠(yuǎn)程對象類定義:Rn-iObj.cs
usingSystem;
usingSystem.Windows.Forms;
namespaceNetRmClass
publicclassRmObj:MarshalByRefObject
〃在構(gòu)造函數(shù)中,用提示窗口提示雙方用戶遠(yuǎn)程對象創(chuàng)建成功
publicRmObjO
MessageBox.Show("遠(yuǎn)程對象已經(jīng)創(chuàng)建","提示信息");
〃調(diào)用Diss方法,會在服務(wù)器端的控制臺程序中輸出方法參數(shù)
publicvoidDiss(stringmsg)
Console.WriteLine("客戶端信息:"+msg);
〃該方法可返回字符串
publicstringDisc()
return”與服務(wù)器端完成通信”;
}
將NeiRm解決方案中的NciRmClass項目進行編譯(VS2008中選擇菜單欄的“項目|生成”
命令,快捷鍵為Crtl+F6),即可在該項目目錄中的“bin\Debug”路徑下生成編譯后的
NetRmClass.dll程序集。
在VS2008中的NeiRm解決方案再次添加新的控制臺應(yīng)用程序項目,并命名為NelRmServer。
該項目所生成的程序集作為Remoting的服務(wù)器端,首先需要添加“NeRmClassd『程序集引
用,并導(dǎo)入NetRmClass命名空間,編寫該項目的Program.cs如代碼13.5所示。
代碼13.5Remoling服務(wù)器端程序:Program.cs
usingSystem;
usingSystem.Runlime.Remoting;
usingSystem.Runtime.Remoting.Channels;
usingSystem.Runtime.Remoting.Channels.Tcp;
usingNetRmClass;
namespaceNetRmServer
{
classProgram
(
〃聲明TcpServerChannel類型的靜態(tài)字段channels
staticTcpServerChannelchannels;
staticvoidMain(string[]args)
(
〃創(chuàng)建新的TcpServerChannel對象,端口號為3000,引用為channels
channels=newTcpServerChannel(3000);
〃將channels注冊到信道服務(wù)
ChannelServices.RegisterChannel(channels,false);
〃創(chuàng)建知名服務(wù)類型的對象,傳遞遠(yuǎn)程對象的類型、對象URI和激活對象的枚舉成
員
RcmotingConfiguration.RcgistcrWcllKnownScrviccTypc(typcof(RmObj),"MyUri",
WellKnownObjectMode.Singleton);
〃信息提示,當(dāng)用戶輸入字符,則結(jié)束程序
Console.WriteLine("=====月艮務(wù)器端已啟動======");
Console.Read();
)
添加“NetRmClass.dll”程序集引用后,該程序集的副本即被復(fù)制到NetRmServer項目目錄中
的“bin'Debug”路徑下,以供NetRmServer項目生成的程序集使用。將NetRm解決方案中的
NetRmServer項目進行編譯,即可在該項目目錄中的“binXDebug”路徑下生成編譯后的
NctRmScrvcr.exe程序集。
2
在VS2008中的NetRm解決方案再次添加新的Windows窗體應(yīng)月程序項目,并命名為
NetRmCliento該項目所生成的程序集作為Remoting的客戶端,首先仍然需要添加
“NeiRmClass.dll”程序集引用,并導(dǎo)入NeiRmClass命名空間。在“Form1”窗體的設(shè)計視圖中
添加一個Button控件和TextBox控件,分另ij命名為"buttonl"和"textBoxl”,編寫Form1.cs
如代碼13.6所示。
代碼13.6Remoting客戶端程序:Forml.cs
usingSystem;
usingSystem.Windows.Forms;
usingSystem.Runlime.Remoting.Channels;
usingSystem.Runtime.Remoting.Channels.Tcp;
usingNetRmClass;
namespaceNetRmClient
{
publicpartialclassForm1:Form
{
〃聲明TcpClientChannel類型的字段channelc
TcpClientChannelchannelc;
〃聲明RmObj類型的字段obj
RmObjobj;
publicForm1()
(
InitializcComponcnt();
I
privatevoidForm1_Load(objectsender,EventArgse)
(
〃創(chuàng)建TcpClientChannel對象,引用為channclc
channelc=newTcpClientChannelO;
〃將channels注冊到信道服務(wù)
ChannelServices.RegisterChannel(channeic,false);
〃創(chuàng)建遠(yuǎn)程對象
obj=(RmObj)Activator.GetObject(typeof(RmObj),"tcp://localhost:3(XX)/MyUri,');
1
privatevoidbuttonl_Click(objectsender,EventArgse)
(
stringMyName=textBoxl.Text;
〃調(diào)用遠(yuǎn)程對象的Diss方法,并傳遞用戶輸入值
obj.Diss(MyName);
〃調(diào)用遠(yuǎn)程對象的Disc方法,返回值賦值給textBoxl控件的“Text”屬性
3
this.textBox1.Text=obj.Disc();
};
添力rNetRmClass.dn”程序集引用后,該程序集的副本同樣被復(fù)制到NetRmCIicnt項目目錄
中的“bin\Debug”路徑下,以供NetRmClienl項目生成的程序集使用。將NetRm解決方案中
的NetRmClient項目進行編譯,即可在該項目目錄中的“binXDebug”路徑下生成編譯后的
NetRmClient.exe程序集。
至此,一個簡單的.NETRemoting應(yīng)用解決方案已完成,其中服務(wù)器端為控制臺程序,客戶
端為Windows窗體程序。服務(wù)器端所指定的位置是“l(fā)ocalhost",也可以根據(jù)程序需要更改為
IP地址。
【分析】
本題主要考查面試者對Remoting應(yīng)用原理的認(rèn)識,該解答并不適宜于直接應(yīng)用于實際開發(fā)。
當(dāng)服務(wù)器端程序運行后(即運行NetRmServer.exe),用戶在客戶端程序中輸入一些文本,并
單擊“bultonl”按鈕,服務(wù)器端程序和客戶端程序運行效果如圖13.4所示。
圖13.4.NETRemoting應(yīng)用示例
解答所編寫的.NETRemoting應(yīng)用用于在本機上測試,不過已經(jīng)展示/.NETRemoting技術(shù)
的基本編寫方法。通過示例,可以清楚理解該技術(shù)的強大功能以及靈活性,但是需要編程者
編寫大量的代碼,并且需要一致的運行環(huán)境支撐。降
WCF技術(shù)有什么優(yōu)勢
【考點】
對WCF技術(shù)的了解,WCF技術(shù)的基本內(nèi)容。
【出現(xiàn)頻率】
★★☆☆☆
【解答】
常用的分布式技術(shù)有COM+、.NET遠(yuǎn)程技術(shù)(Remoting)、WebService和微軟消息隊
列服務(wù),WCF技術(shù)將這些分布式技術(shù)整合為一個高效的APL常用的那些分布式技術(shù)只能
解決項目開發(fā)中某個方面的問題,并且不同技術(shù)對平臺要求不同。在項目中有時要使用到多
種技術(shù)從而導(dǎo)致這些技術(shù)所提供的服務(wù)有重疊之處,并且整個項目的維護復(fù)雜性大大增加。
WCF技術(shù)提供了一個完整統(tǒng)一的方案解決這些問題,它提供了一個用于訪問各種分布式技
術(shù)的通用API,并且增加了很多必要的服務(wù)。
【分析】
本題主要考查面試者對.NETFramework新版本中WCF技術(shù)的基本認(rèn)知。公司招聘.NET
程序員不一定非要熟練掌握WCF這樣的新技術(shù),但是一定會要求所招聘的人才具備對新技
術(shù)的了解,對新技術(shù)探索的好奇心。本題即為這樣的目的而設(shè),難度不大,只要面試者對新
技術(shù)有一定程度的了解,經(jīng)過短時間的培訓(xùn)即可掌握,其考查重點在于面試者的知識廣度。
.NETRemoting和WebService有什么異同
【考點】
.NETRemoting技術(shù)相對于WebService的優(yōu)勢和劣勢。
【出現(xiàn)頻率】
★★★☆☆
4
【解答】
qRemoting技術(shù)可以靈活地定義其所基于的協(xié)議,比如HTTP協(xié)議和TCP協(xié)議。在實
際開發(fā)中,Remoting一般使用TCP協(xié)議,這樣可保證在保持狀態(tài)的情況下,獲取比Web
Service更好的性能,而WebService默認(rèn)情況下是沒有狀態(tài)的。
qRemoting技術(shù)不是行業(yè)標(biāo)準(zhǔn),而WebService是行業(yè)標(biāo)準(zhǔn),并可能成為下一代網(wǎng)絡(luò)
數(shù)據(jù)交換的核心組成部分。
qRemoting技術(shù)可用.NET的Windows窗體程序或Windows服務(wù)進行啟動,也可以
使用IIS部署,而WebService則必須通過IIS之類的服務(wù)啟動。
q在VS2008等.NET開發(fā)環(huán)境中,專門對WebService的調(diào)用進行了封裝,可以直
接通過添加Web引用或服務(wù)引用調(diào)用WebService,節(jié)約大量代碼,而Remoting需要編
寫更多代碼,開發(fā)效率較低。
q.NETRemoting的通信要求雙方運行相同的平臺框架,如I.NETRemoting需要客戶
端和服務(wù)器端安裝.NETFrameworko而WebService是平臺獨立的,可跨語言(支持XM
L的語言)互動。
【分析】
本題考查面試者的數(shù)據(jù)庫相關(guān)的ASP.NET開發(fā)經(jīng)驗,.NETRemoting與WebService有所
不同,Remoting技術(shù)支持HTTP以及TCP信道,而且不僅能傳輸XML格式的SOAP包,
也可以傳輸傳統(tǒng)意義上的二進制流,這使得Remoting效率更高也更加靈活。Remoting不
依賴于IIS,服務(wù)器端和客戶端可以非常靈活地部署。從某些方面上來講WebService其實
上是.NETRemoting的一種特例。
【考點】
創(chuàng)建WebService的基本代碼。
【出現(xiàn)頻率】
★★★☆☆
【解答】
在VS2008中添加新的WEB服務(wù)代碼模板到WebSvRm項目,并命名為MyWebSv.asmXo
這個代碼文件實際已經(jīng)具備了WebService的基本代碼結(jié)構(gòu),這里編寫一個能將小寫字母
轉(zhuǎn)換為大寫字母的WebService應(yīng)用。首先編寫MyWebSv.asmx.cs如代碼13.1所示。
代碼13.1轉(zhuǎn)換大寫字母的WebService:MyWebSv.asmx.es
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Services;
usingSystem.Web.Services.Protocols;
usingSystem.Xml.Linq;
namespaceWebSvRm
〃默認(rèn)命名空間的指定
5
[WebService(Namespace="/")]
[WebServiceBinding(Conforrrs7b=WsiProfiles.BasicProfile1_1)|
publicclassMyWebSv:Sysleni.Web.Services.WebService
(
〃聲明WebMethod特性,該方法才可以被訪問
[WebMethod]
publicstringConvertWordistringword)
(
returnword.ToUpperlnvariant();
)
)
)
然后在WebSvRm項目中添加WEB弓I用,地址為“http:〃localhost/MyWebSv.asmx",這時
項目目錄下將生成WebReferences目錄,這個目錄包含有l(wèi)ocalhost子目錄。然后在
WebSvRm項目的默認(rèn)首頁,即Defaidt.aspx中調(diào)用WebService以輸出結(jié)果,首先編寫
Default.aspx如代碼13.2所示。
代碼13.2調(diào)用WebService的頁面:Default.aspx
<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="Default.aspx.csH
Inherits="WebSvRm._Default"%>
<!DOCTYPEhtmlPUBLICM-//W3C//DTDXHTML1.0Transitional//ENM
"/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="/1999/xhtml">
<headrunat="server">
vtitle>調(diào)用WebService</title>
</head>
<body>
<formid="form1"runat="scrvcr">
<div>
請輸入需要轉(zhuǎn)換大寫字母的初始字母或單詞:vasp:TextBoxrunat="server"
ID="input"x/asp:TextBox>
<asp:Buttonrunat="server"ID="btn"Text="開始轉(zhuǎn)換"/>
<hr/>
調(diào)用WebService所返回的結(jié)果:vaspTabeirunat="server"ID="output"x/asp
abel>
</div>
</form>
</body>
</html>
最后編寫Default.aspx.es如代碼13.3所示。
6
代碼13.3調(diào)用WebService的邏輯代碼:Defaultaspx.cs
usingSystem;
usingSystem.Collections;
usingSystem.Configuration;
usingSystem.Data;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.Ul.HtmIControls;
usingSystem.Web.Ul.WebControls;
usingSystem.Web.Ul.WebControls.WebParts;
usingSystem.Xml.Linq;
namespaceWebSvRm
(
publicpartialclass_Default:System.Web.Ul.Page
(
protectedvoidbtn_Click(objectsender,EventArgse)
(
〃獲取用戶輸入值
stringtxt1=this.input.Text;
〃創(chuàng)建MyWebSv對象,引用為WebSvl
localhost.MyWebSvWebSvl=newlocalhost.MyWebSv():
〃調(diào)用WebSvl方法,并傳遞txt1變量,返回值賦值給txt2
stringtxt2=WebSvl.ConvertWord(txt1);
〃將txt2賦值給output控件的“Tbxt”屬性值
this.output.Text=txt2;
)
)
)
打開IE瀏覽器,在瀏覽器地址欄輸入“http://localhostZSendHtml.aspx",并輸入
"microsoft.netframework”到TextBox控件中,然后單擊“開始轉(zhuǎn)換”按鈕,頁面運行效果如
圖13.2所示。
圖13.2WebService調(diào)用實例
【分析】
本題考查面試者利用VS2008等開發(fā)環(huán)境創(chuàng)建WebService應(yīng)用的基本方法,因為是基本
方法,所以不涉及太多概念。實際上,用該方法創(chuàng)建WebService應(yīng)用最為簡便,其中很
多工作已經(jīng)被VS2008等開發(fā)環(huán)境封裝,對于很多編程者,這些細(xì)節(jié)部分是透明的。解答
中所創(chuàng)建的WebService方法非常簡單,在調(diào)用WebService方法時,直接添加WEB引
用即可。打開添加WEB引用時自動創(chuàng)建的localhost目錄,如圖13.3所示。
7
圖13.3添加WEB引用后生成的文件
可見,VS2008的確做了很多工作,自動創(chuàng)建了4個文件,其中MyWebSv.disco文件用于
WebService的靜態(tài)發(fā)現(xiàn)服務(wù),即使用DISCO定位。不過最常用的WebService發(fā)現(xiàn)服務(wù)
是使用UDDI發(fā)現(xiàn),即向UDDI服務(wù)器注冊所創(chuàng)建的WebService,這樣整個Internet上的
其他用戶可以調(diào)用該WebService的功能了。其中的MyWebSv.wsdl是該WebService的
服務(wù)描述,以方便調(diào)用方了解WebService的功能等信息。Reference.cs是客戶端的代理
類,可用于客戶端程序以所屬平臺的方式直接調(diào)用WebService提供的方法等。
Reference.map是一個XML文件,映射了所序列化的文件,即*.disco文件和*.wsdl文件。
在實際的項目開發(fā)中,WebService的這些細(xì)節(jié)工作一般由編程者手動編寫,這樣更適用于
不同項目的需求。
8
.net理論知識
什么是面向?qū)ο?/p>
面向?qū)ο?0=面向?qū)ο蟮姆治鯫OA+面向?qū)ο蟮脑O(shè)計00D+面向?qū)ο蟮木幊?/p>
OOP:
通俗的解釋就是萬物皆對象,把所有的事物都看作一個個可以獨立的對象(單元),它
們可以自己完成自己的功能,而不是像C那樣分成一個個函數(shù);
現(xiàn)在純正的OO語言主要是java和C#,C++也支持00,C是面向過程的。
闡述面向接口、面向?qū)ο蟆⒚嫦蚍矫婢幊痰膮^(qū)別
面向?qū)ο蟛缓媒忉?,可以理解為以一切元索都是對象,在設(shè)計時以對象為單位,考慮它的屬
性及方法.設(shè)計中采用了封裝、繼承、抽象的手法
面向接口本身就是面向?qū)ο蟮模瑹o所謂區(qū)別,只不過面向接口的好處是耦合性低
面向方面Aspect-OiientedPiogianuning(AOP)就是大名鼎鼎的AOP.其實有點象struts里的
攔截。
舉例:假設(shè)有在一個應(yīng)用系統(tǒng)中,有一個共享的數(shù)據(jù)必須被并發(fā)同時訪問,首先,
將這個數(shù)據(jù)封裝在數(shù)據(jù)對象中,稱為DataClass,同時,將有多個訪問類,專門用于在同一
時刻訪問這同一個數(shù)據(jù)對象。
為了完成上述并發(fā)訪問同一資源的功能,需要引入鎖Lock的概念,乜就是說,某個時刻,
當(dāng)有一個訪問類訪問這個數(shù)據(jù)對象時,這個數(shù)據(jù)對象必須上鎖Locked,用完后就立即解鎖
unLocked,再供其它訪問類訪問。
面向?qū)ο蟮乃枷胫饕ㄊ裁矗?/p>
繼承:子類擁有父類的所有數(shù)據(jù)和操作。
封裝;用抽象的數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,數(shù)據(jù)被保護在抽象數(shù)據(jù)類型
內(nèi)。
多態(tài):一個程序中同名的不同方法共存的情況。有兩種形式的多態(tài)-重載與重寫。
抽象類是否可以繼承實體類?
抽象類可以繼承實體類,但是有個條件,條件是,實體類必須要有明確的構(gòu)造函數(shù)。
當(dāng)類T只聲明了私有實例構(gòu)造函數(shù)時,則在T的程序文本外部,是否可以從T派生出新的
類,是否可以直接創(chuàng)建T的任何實例。
不可以,不可以
C#中有沒有靜態(tài)構(gòu)造函數(shù),如果有是做什么用的?
有.靜態(tài)構(gòu)造函數(shù)用于初始化類。在創(chuàng)建第一個實例或引用任何音態(tài)成員之前,將自動
9
調(diào)用靜態(tài)構(gòu)造函數(shù)來初始化類。靜態(tài)構(gòu)造函數(shù)既沒有訪問修飾符,也沒有參數(shù)。在創(chuàng)建第一
個實例或引用任何靜態(tài)成員之前,將自動調(diào)用靜態(tài)構(gòu)造函數(shù)來初始化類。無法直接調(diào)用靜態(tài)
構(gòu)造函數(shù)。在程序中,用戶無法控制何時執(zhí)行靜態(tài)構(gòu)造函數(shù)。靜態(tài)構(gòu)造函數(shù)的典型用途是:
當(dāng)類使用日志文件時,將使用這種構(gòu)造函數(shù)向日志文件中寫入項。
什么是.n8?
,net是一種平臺和框架,.ne1不是單純的語言也不是單純的工具,它是從底層平臺開始
構(gòu)建起來的一個整體框架
請以圖示方式解釋.netframework?
VB
C++
c#
Jscript
CommonLanguageSpecification
XMLWeb
services
WebForms
10
WindowsForms
DataandXML
BaseClassLibrary
CLR
CLI
VisualStudio.NET
11
程序集與命名空間有什么不同?
命名空間是用于避免命名沖突,專用于組織代碼,當(dāng)代碼要在其他某個應(yīng)用程序
中重用時,可以降低復(fù)雜性。
程序集是重用代碼的一種方式驗證控件
不同:可以將相同命名空間中的類部署到不同的程序集中,也可以命名空間中的類部署到一
個程序集中
命名空間
程序集
有邏輯編譯時機制
有物理編譯時機制
不是運行時實體
是運行時實體
為源代碼元素的名稱提供邏輯結(jié)構(gòu)
為可執(zhí)行文件的運行時提供物理結(jié)構(gòu)
什么是WEB控件?使用WEB控件有那些優(yōu)勢?
WEB控件是能拖放在WEB頁面上的控件
WEB控件分為;內(nèi)部控件,列表控件,復(fù)雜控件,
?WEB控件優(yōu)勢:
1Web控件是對象,與對象一樣,Web控件擁有方法和屬性,并且響應(yīng)事件
1一旦將Web控件包括在Web頁中,就可以設(shè)置其屬性并調(diào)用其方法
1可以為Web控件編寫服務(wù)器端代碼以響應(yīng)在客戶端上發(fā)生的事件
ASP0NET中共有幾種類型的控件?各有什么區(qū)別?
WEB控件分為:內(nèi)部控件,列表控件,復(fù)雜控件,驗證控件
內(nèi)部控件:內(nèi)部控件的使用方法與HTML控件相同,它們映射到HTML元素并
12
通過使用runat="server"屬性在服務(wù)器上執(zhí)行
列表控件:用于在Web頁中創(chuàng)建數(shù)據(jù)列表
復(fù)雜控件:當(dāng)希望控件擁有復(fù)雜的功能或使用HTML元素?zé)o法創(chuàng)建的功能豐富
的用戶界面時,可以使用復(fù)雜控件
驗證控件:輸入控件的數(shù)據(jù)需要進行準(zhǔn)確性和取值范圍方面的檢查
WEB控件可以激發(fā)服務(wù)端事件,請談?wù)劮?wù)端事件是怎么發(fā)生并解釋其原理?自動傳回是
什么?為什么要使用自動傳回。
由于ASP。NET是Web頁面和服務(wù)端分離的,因此要產(chǎn)生了服務(wù)端事件.
使用_doPostBack函數(shù)能夠自動地把客戶端的javascript事件轉(zhuǎn)變?yōu)?個服務(wù)器端
的事件
,A框架自動為我們處理有關(guān)的細(xì)節(jié)簡化工作。
使用自動傳回的特性:在檢測到一個特定用戶動作時,自動傳回能夠?qū)⑦@個頁面?zhèn)骰胤?/p>
務(wù)器以處理
事件.
在web控件發(fā)生事件時,客戶端采用提交的形式將數(shù)據(jù)交回服務(wù)端,服務(wù)端先調(diào)用
Page_Load事件,然后根據(jù)傳回的狀態(tài)信息自動調(diào)用服務(wù)端事件自動傳回是當(dāng)我們在點擊客
戶端控件時,采用提交表單的形式將數(shù)據(jù)直接傳回到務(wù)端。只有通過自動傳回才能實現(xiàn)服務(wù)
端事件的機制,如果沒有自動回傳機制就只能調(diào)用客戶端事件,而不能調(diào)用服務(wù)端事件
請解釋ASP.NET中以什么方式進行數(shù)據(jù)驗證。
A中有非空驗證,比較驗證,取值范圍驗證,正則表達式驗證及客戶自定義驗證
五大控件,另還有一個集中驗證信息處理控件
什么是ASP.Net中的用戶控件
用戶控件是能夠在其中放置標(biāo)記和Web服務(wù)器控件的容器。然后,可以將用戶控件作為一
個單元對待,為其定義屬性和方法。
用戶控件以。ascx為擴展名,可以拖到不同的頁面中調(diào)用,以節(jié)省代碼。比如登陸可能在多
個頁面上有,就可以做成用戶控件,但是有一個問題就是用戶控件拖到不同級別的目錄下后
里面的圖片等的相對路徑會變得不準(zhǔn)確,需要自己寫方法調(diào)整。
問這樣的問題,一般是迷惑你。因為新手還是分不清楚用戶控件和服務(wù)器控件(也稱自定義
控件),用戶控件一般用在內(nèi)容多為靜態(tài),或者少許會改變的情況下,用的比較大,類似ASP
13
中的include。。但是功能要強大的多。
WEB控件及HTML服務(wù)端控件能否調(diào)用客戶端方法?如果能,請解釋如何調(diào)用?
可以調(diào)用
例如:vasp:TextBoxid="TextBoxl"onclick="clientfunction();"runat="sener"></asp:TextBox>
<INPUTid="Button2"value="Button"name="Button2"runat="server"
onclick="clientfunction();,,>
C#,Java和C++的特點,有什么相同的地方,不同的地方,C#分別從C++和java中吸取了
他們那些優(yōu)點?
C#看起來與Java有著驚人的相似;它包括了諸如單一繼承,界面,與Java幾乎同樣的語法,和編
譯成中間代碼再運行的過程.但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與
COM(組件對象模型)是直接集成。
微軟言定義主耍是從C和C++繼承而來的,而且語言中的許多元素也反吠了這?點.C#
在設(shè)計者從C++繼承的可選選項方面比Java要廣泛一些(比如說structs),它還增加了自己新
的特點(比方說源代碼版本定義).
C#從Java繼承而來的特點
類:在C#中類的聲明與Java很相似。特點看起來與Java相比沒有變化.
布爾運算:條件表達式的結(jié)果是布爾數(shù)據(jù)類型,布爾數(shù)據(jù)類型是這種語言中獨立的一種數(shù)據(jù)
類型.從布爾類型到其他類型沒有直接的轉(zhuǎn)換過程.布爾常量true和false是C#中的關(guān)鍵字.
錯誤處理:如Java中那樣,通過拋出和捕捉異常對象來管理錯誤處理過程.
內(nèi)存管理:由底層.NET框架進行自動內(nèi)存垃圾回收.
C#從C和C++繼承的特點
編譯:程序直接編譯成標(biāo)準(zhǔn)的二進制可執(zhí)行形式.
結(jié)構(gòu)體:一個C#的結(jié)構(gòu)體與C++的結(jié)構(gòu)體是相似的,因為它能夠包含數(shù)據(jù)聲明和方法.但是,
不象C++,C#結(jié)構(gòu)體與類是不同的而且不支持繼承.但是,與Java相同的是,一個結(jié)構(gòu)體可以實
現(xiàn)界面.
預(yù)編譯:C#中存在預(yù)編譯指令支持條件編譯,警告,錯誤報告和編譯行控制.#error
C#獨有的特點
中間代碼:微軟在用戶選擇何時MSIL應(yīng)該編譯成機器碼的時候是留了很大的余地.微軟公
14
司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機器碼.它也明白許多-如果不是大多
數(shù)的話--程序員認(rèn)為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實現(xiàn)方式?jīng)Q
定了基于MSIL的程序(指的是用C#,VisualBasic,“ManagedC十十”一C+-的一個符合CLS的版
本--等語言編寫的程序)將在性能上超過“解釋性的“Java代碼.當(dāng)然,這一點還需要得到事實證
明,因為C#和其他生成MSIL的編譯器還沒有發(fā)布.但是JavaJIT編譯器的普遍存在使得Java
和C#在性能上相對相同.象”C#是編譯語言而Java是解釋性的,”之類的聲明只是商業(yè)技
巧.Java的中間代碼和MSIL都是中間的匯編形式的語言,它們在運行時或其它的時候被編譯
成機器代碼.
命名空間中的聲明:當(dāng)你創(chuàng)建一個程序的時候,你在一個命名空間里創(chuàng)建了一個或多個類.同
在這個命名空間里(在類的外面)你還有可能聲明界面,枚舉類型和結(jié)構(gòu)體.必須使用using關(guān)
鍵字來引用其他命名空間的內(nèi)容.
基本的數(shù)據(jù)類型:C#擁有比C,C++或者Java更廣泛的數(shù)據(jù)類型.這些類型是bool,byte,ubyte,
short,ushort,int,uint,long,ulong,float,double,decimal.象Java一樣,所有這些類型都有一個
固定的大小.又象C和C++一樣,每個數(shù)據(jù)類型都有有符號和無符號兩種類型.與Java相同的
是,?個字符變量包含的是個16位的Unicode字符.C#新的數(shù)據(jù)類型是decimal數(shù)據(jù)類型,
對于貨幣數(shù)據(jù),它能存放28位10進制數(shù)字.
兩個基本類:一個名叫object的類是所有其他類的基類.而一個名叫string的類也象object
一樣是這個語言的一部分.作為語言的一部分存在意味著編譯器有可能使用它-無論何時你
在程序中寫入一句帶引號的字符串,編譯器會創(chuàng)建一個string對象來保存它.
參數(shù)傳遞:方法可以被聲明接受可變數(shù)目的參數(shù).缺省的參數(shù)傳遞方法是對基本數(shù)據(jù)類型進
行值傳遞.ref關(guān)鍵字可以用來強迫一個變量通過引用傳遞,這使得一個變量可以接受一個返
回值.out關(guān)鍵字也能聲明引用傳遞過程,與ref不同的地方是,它指明這個參數(shù)并不需要初始
值.
與COM的集成:C#對Windows程序最大的賣點可能就是它與COMH勺無縫集成了,COM就
是微軟的Win32組件技術(shù).實際上,最終有可能在任何.NET語言里編寫COM客戶和服務(wù)器
端.C#編寫的類可以子類化一個以存在的COM組件;生成的類也能被作為一個COM組件使
用,然后又能使用,比方說,JScript若言子類化它從而得到第三個COM組件.這種現(xiàn)象的結(jié)果
是導(dǎo)致了一個運行環(huán)境的產(chǎn)生,在這個環(huán)境里的組件是網(wǎng)絡(luò)服務(wù),可用用任何.NET語言子類
化.
索引下標(biāo):一個索引與屬性除了不使用屬性名來引用類成員而是用一人方括號中的數(shù)字來匿
名引用(就象用數(shù)組下標(biāo)一樣)以外是相似的.
代理和反饋:一個代理對象包括了訪問一個特定對象的特定方法所需的信息.只要把它當(dāng)成
一個聰明的方法指針就行了.代理對象可以被移動到另一個地方,然后可以通過訪問它來對已
存在的方法進行類型安全的調(diào)用.一個反饋方法是代理的特例.event美鍵字用在將在事件發(fā)
生的時候被當(dāng)成代理調(diào)用的方法聲明中.
在C#中,stringstr=null與stringstr="”的區(qū)別。
15
stringstr=null是不給他分配內(nèi)存空間,而stringsir給它分配長度為空字符串的內(nèi)存空
怎樣理解靜態(tài)變量?靜態(tài)成員和非靜態(tài)成員的區(qū)別?
靜態(tài)變量屬于類,而不屬于對象;并對所有對象所享;靜態(tài)成員在加類的時候就被加載。
靜態(tài)成員和非靜態(tài)成員的區(qū)別?
靜態(tài)變量使用static修飾符進行聲明,靜態(tài)成員在加類的時候就被加載(在類被實例
化時創(chuàng)建,哪個對),通過類進行訪問
不帶有static修飾符聲明的變量稱做非靜態(tài)變量,在對象被實例化時創(chuàng)建,通過對象進
行訪問
一個類的所有實例的同一靜態(tài)變量都是同一個值,同一個類的不同實例的同一非靜態(tài)變
量可以是不同的值
靜態(tài)函數(shù)的實現(xiàn)里不能使用非靜態(tài)成員,如非靜態(tài)變量、非靜態(tài)函數(shù)等
DataReader和DataSet的異同
DataReader和DataSet最大的區(qū)別在于,DataReader使用時始終占用SqlConncction,在線操
作數(shù)據(jù)庫,任何對SqlConnection的操作都會引發(fā)DaiaReader的異常,因為DataReader每次
只在內(nèi)存中加載一條數(shù)據(jù),所以占用的內(nèi)存是很小的,因為DataReader的特殊性和高性能。
所以DataReader是只進的,你讀了第一條后就不能再去讀取第一條了。
DataSet則是將數(shù)據(jù)一次性加載在內(nèi)存中。拋棄數(shù)據(jù)庫連接,讀取完比即放棄數(shù)據(jù)庫連接,
因為DalaSet將數(shù)據(jù)全部加載在內(nèi)存中。所以比較消耗內(nèi)存,但是確比DataReader要靈活,
可以動態(tài)的添加行,歹U,數(shù)據(jù)。對數(shù)據(jù)庫進行回傳更新操作。
簡述靜態(tài)類和靜態(tài)成員
靜態(tài)類中的成員都必須是靜態(tài)的。靜態(tài)類無構(gòu)造方法,并且是密封類無法被繼承。
靜態(tài)成員訪問時只能通過類名來訪問,不能通過對象訪問(和JAVA有區(qū)別),this
也無法訪問靜態(tài)成員。
描述接口的作用
充當(dāng)類的功能界面,接口里的成員屬于抽象描述,必須通過類的實現(xiàn)才能使用。如:某個項
目有多個模塊組成,每個模塊由一個開發(fā)者完成,開發(fā)者只需編寫完模塊功能實現(xiàn)后,留下
的接口供其他人使用。其他人在程序中,使用接口時,只需知道接口的功能,不了解如何實
現(xiàn)。
當(dāng)功能模塊無法滿足需要或功能模塊的需求變更時,程序員只需將該功能模塊的實現(xiàn)代碼進
16
行修改和擴充,而其他調(diào)用接口的程序無須改動。接口的這種應(yīng)用模式成為brige模式(即
意圖和實現(xiàn)分離)
接口反映了面向?qū)ο蟮亩鄳B(tài)特征,即通過相同方法得到不同實現(xiàn)。接口也反映了面向?qū)ο蟮?/p>
封裝特征,使用者可以不清楚接口成員的實現(xiàn)細(xì)節(jié)。
注意:因為接口成員默認(rèn)的訪問權(quán)限是public,所以在實現(xiàn)接口時,類的成員必須為public,
且方法名和參數(shù)必須一致。
描述抽象類
用abstract修飾的類。抽象類可以包含實現(xiàn)的成員。未實現(xiàn)的成員隱含的是virtual
屬性,子類實現(xiàn)時必須用override關(guān)鍵字。
請解釋接口的顯式實現(xiàn)有什么意義?
接口是其他類型為確保它們支持某些操作而實現(xiàn)的引用類型。接口從不直接創(chuàng)建而且
沒有實際的表示形式,其他類型必須轉(zhuǎn)換為接口類型。?個接口定義個協(xié)定。實現(xiàn)接口的
類或結(jié)構(gòu)必須遵守其協(xié)定。接口可以包含方法、屬性、索引器和事件作為成員。
在項目中為什么使用接口?接口的好處是什么?什么是面向接口開發(fā)?
接口只是一種約束。使用interface去定義某些特定的功能,為的是不要將代碼寫
死在自定義類里,以便在系統(tǒng)開發(fā)、事后維護、功能擴充上更有擴展性。
接口用于描述一組類的公共方法/公共屬性.它不實現(xiàn)任何的方法或?qū)傩裕皇歉?/p>
訴繼承它的類至少要實現(xiàn)哪些功能,繼承它的類可以增加自己的方法.使用接口可以使繼承
它的類:命名統(tǒng)一/規(guī)范,易于維護。提供永遠(yuǎn)的接口。當(dāng)類增加時,現(xiàn)有接口方法能夠滿
足繼承類中的大多數(shù)方法,沒必要重新給新類設(shè)計一組方法,也節(jié)省了代碼,提高了開發(fā)效
率。
面向接口開發(fā)的好處有結(jié)構(gòu)清晰,類間通信簡單易懂,擴展性好,提高復(fù)用性等
等。
面向接口開發(fā)就是指面向抽象協(xié)議編程,實現(xiàn)者在實現(xiàn)時要嚴(yán)格按協(xié)議來辦。
接口和類有什么異同。
不同點:
1、不能直接實例化接口。
2、接口只包含方法或?qū)傩缘穆暶鳎话椒ǖ膶崿F(xiàn)。
3、接口可以多繼承,類只能單繼承。
17
4、類有分部類的概念,定義可在不同的源文件之間進行拆分。
5、表達的含義不同,接口主要定義一種規(guī)范,統(tǒng)一調(diào)用方法,也就是規(guī)范類,約束類,類
是方法功能的實現(xiàn)和集合
相同點:
1、接口、類和結(jié)構(gòu)都可以從多個接口繼承。
2、接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現(xiàn)接口的所有成員。
3、接口和類都可以包含事件、索引器、方法和屬性。
您在什么情況下會用到虛方法或抽象類,接口?
如果某個方法可能性在派生類中會被重寫。這時就將該方法寫為虛方法。
抽象類:是一個類型,與派生類之間的關(guān)系是一個“ISA”的關(guān)系。用來做基類,
抽象類不能創(chuàng)建對象,類中包括抽象方法和實例方法。
接口:是設(shè)計一個規(guī)范,描述了Cando;與實現(xiàn)類之間是中“LINEA的關(guān)系,
C#中接口不能包含字段訪問修飾符。
對比抽象基類和接口的使用
抽象類能有具體實現(xiàn),而接口只定義行為規(guī)范,不能有具體實現(xiàn)。一個類只能繼
承一個父類,但能實現(xiàn)多個接口。
C#中的接口和抽象類有什么異同。你選擇使用接口和抽象類的依據(jù)是什么?
1、繼承:接口支持多繼承;抽象類不能實現(xiàn)多繼承。
2、表達的概念:接口用于規(guī)范,抽象類用于共性。抽象類是一類事物的高度聚合,
那么對于繼承抽象類的子類來說,對于抽象類來說,屬于“是”的關(guān)系:而接口是定義行為規(guī)
范,因此對于實現(xiàn)接口的子類來說,相對于接口來說,是”行為需要按照接口來完成,
3、方法實現(xiàn):對抽象類中的方法,即可以給出實現(xiàn)部分,也可以不給出;而接口
的方法(抽象規(guī)則)都不能給出實現(xiàn)部分,接口中方法不能加修飾符。
4、子類重寫:繼承類對于兩者所涉及方法的實現(xiàn)是不同的,繼承類對于抽象類所
定義的抽象方法,可以不用重寫,也就是說,可以延用抽象類的方法;而對于接口類所定義
的方法或者屬性來說,在繼承類中必須重寫,給出相應(yīng)的方法和屬性實現(xiàn)。
5、新增方法的影響:在抽象類中,新增一個方法的話,繼承類中可以不用作任何
處理;而對于接口來說,則需要修改繼承類,提供新定義的方法。
18
6、接口可以作用于值類型(枚舉可以實現(xiàn)接口)和引用類型;抽象類只能作用于
引用類型。
7、接口不能包含字段和已實現(xiàn)的方法,接口只包含方法、屬性、索引器、事件的
簽名;抽象類可以定義字段、屬性、包含有實現(xiàn)的方法。
8、接口可以用于支持回調(diào)(CallBack);抽象類不能實現(xiàn)回調(diào),因為繼承不支持。
如下給出兩者的簡單對比表格。
接口
抽象類
多繼承
支持
不支持
類型限制
沒有
有,只能是引用類型
方法實現(xiàn)
繼承類型中必須給出方法實現(xiàn)
繼承類中可以不給出
擴展性
比較麻煩
相對比較靈活
多層繼承
比較麻煩,需要借助虛函數(shù)
比較靈活
如何選擇:
1、看是否需要多繼承,如果需要就只能使用接口
2、看你在累里定義的方法是否需要有實現(xiàn)的代碼,如果耍,就使用抽象類
3、使不同的類型有共同的特性的時候使用接口,因為它支持多繼承,只想從一個類型繼承
出不同的行為的子類的時候使用抽象類,可以在基類里有代碼實現(xiàn)。
從實現(xiàn)接口和現(xiàn)實抽象類的方法來看,接口是死的,抽象類是活的,當(dāng)然實現(xiàn)接口的類是活
19
的。
結(jié)構(gòu)和類的區(qū)別
簡單的說成class可以被實例化,屬于引用類型struct屬于值類型,
1)、類型,空間分配。結(jié)構(gòu)是值類型,是分配在內(nèi)存的棧上的.類時弓用類型,,是分配在內(nèi)
存的堆上的。結(jié)構(gòu)實例化可以不用new,即使用new操作也不會在堆里分配內(nèi)存。作參數(shù)
是按值傳遞,類時引用傳遞,變量用完自動解除內(nèi)存分配,類需要垃圾回收期
2)、基類。結(jié)構(gòu)繼承自System.ValueType類,因此不具多態(tài)性。但是注意,System.ValueType
是個引用類型。類繼承自System.Object類;
3)、職能。sinicl常用于存儲數(shù)據(jù);而class表現(xiàn)為行為
4)、結(jié)構(gòu)沒有類的特性,不支持繼承。但可以實現(xiàn)接口。
5)、結(jié)構(gòu)無法聲明無參的構(gòu)造函數(shù),但可以聲明有參的構(gòu)造函數(shù)
6)、結(jié)構(gòu)的實例成員不能直接賦初值,必須通過構(gòu)造函數(shù)來賦值,但靜態(tài)成員可以直接賦初
值
7)^無抽象結(jié)構(gòu),但有抽象類(abslracl)
8)、class可以聲明proiecled成員、virtual成員、sealed成員和override成員;而sinicl不可
以,但是值得注意的是,struct可以重載System.Object的3個虛方法,Equals。、ToStringO
和GetHashTable().>
接口與繼承的區(qū)別?什么時候使用接口,什么時候使用繼承?
(1)接口定義一個類型需要實現(xiàn)的方法,屬性,索引和事件,包括可能的參數(shù)類型和返回
值類型,而把具體的實現(xiàn)交由相應(yīng)的類或結(jié)構(gòu)來做,從而為組件提供多態(tài)能力。
(2)繼承常用于在一個現(xiàn)有父類的基礎(chǔ)上的功能擴展,往往是我們將幾個類中相同的成員
提取出來放在父類中實現(xiàn),然后在各自的子類中加以繼承。
(3)接口可以實現(xiàn)多接口繼承,而繼承只能實現(xiàn)單繼承。
(4)實現(xiàn)繼承可繼承父類型的實現(xiàn),由于接口中沒有定義方法的實現(xiàn),因此必須實現(xiàn)繼承
后該接口的所有方法。
(5)為父類型添加方法可能不影響使用繼承自該類型實現(xiàn)的用戶,而為接口添加方法導(dǎo)致
用戶必須為新方法添加實現(xiàn)。
20
(6)當(dāng)派生類和基類是is-a的關(guān)系是使用“繼承",典型案例”蘋果is-a水果”,存在can-do
的關(guān)系時使用“接口”
重載(Overload)和覆寫(Override)的區(qū)別
簡單的說,一個是同一個函數(shù)的幾種形式,一個是重寫父類函數(shù),
重載:當(dāng)類包含兩個名稱相同但簽名不同(方法名相同,參數(shù)列表不相同)的方法時
發(fā)生方法重載。用方法重載來提供在語義上完成相同而功能不同的方法。
覆寫:在類的繼承中使用,通過覆寫子類方法可以改變父類虛方法的實現(xiàn)。
區(qū)別:
1、方法的覆蓋是子類和父類之間的關(guān)系,是垂直關(guān)系;方法的重載是同一個類中
方法之間的關(guān)系,是水平關(guān)系。
2、覆蓋只能由個方法,或只能由?對方法產(chǎn)生關(guān)系;方法的重載是多個方法之間的
關(guān)系。
3、覆蓋要求參數(shù)列表相同;重載要求參數(shù)列表不同。
4、覆蓋關(guān)系中,調(diào)用那個方法體,是根據(jù)對象的類型(對象對應(yīng)存儲空間類型)來決
定;重載關(guān)系,是根據(jù)調(diào)用時的實參表與形參表來選擇方法體的。
<%#%>和<%%>有什么區(qū)別?
<%#%>表示綁定的數(shù)據(jù)源
<%%>是服務(wù)器端代碼塊
值類型和引用類型的區(qū)別?寫出C#的樣例代碼。
值類型包括簡單類型、結(jié)構(gòu)體類型和枚舉類型,引用類型包括自定義類、數(shù)組、接口、委托
等
1、賦值方式:將一個值類型變量賦給另一個值類型變量時,將復(fù)制包含的值。這與引用類
型變量的賦值不同,引用類型變量的賦值只復(fù)制對象的引用,而不復(fù)制對象本身。
2、派生:值類型不可能派生出新的類型,所有的值類型均隱式派生自System.ValueTypeo
但與引用類型相同的是,結(jié)構(gòu)也可以實現(xiàn)接口。
3、null:與引用類型不同,值類型不可能包含null值。然而,可空類型功能允許將null賦
給值類型。
4、每種值類型均有一個隱式的默認(rèn)構(gòu)造函數(shù)來初始化該類型的默認(rèn)值。
21
值類型主要由兩類組成:結(jié)構(gòu)、枚舉
結(jié)構(gòu)分為以下幾類:Numeric(數(shù)值)類型、整型、浮點型、decimal,book用戶定義的結(jié)
構(gòu)。
引用類型的變量又稱為對象,可存儲對實際數(shù)據(jù)的引用。聲明引用類型的關(guān)鍵字:class、
interfacedelegate內(nèi)置引用類型:object、string
5、值類型存貯在棧中,而引用類型存貯在動態(tài)的堆中,棧是先進先出的有系統(tǒng)管理的空間,
而堆是由應(yīng)用程序控制的可隨時申請和釋放該空間,在Donnet中一般情況下有垃圾收集器
處理,他們的不同導(dǎo)致在編程上的不同。
例:
"a=null”的意思是:a的引用置為空但此時StringBuilder的堆空間并沒有被釋放,因此在此之
后,輸;Ilb時,仍然可以輸出mxh
usingSystem;
usingSystem.Text;
classEventDel
(
staticvoidMain(string[]args)
(
StringBuildera=newStringBuilder。;〃將StringBuilder的一個首地址傳給a
StringBuilderb=a;〃將StringBuilder的一個首地址傳給b
b.Append(,'mxh");
Console.WriteLine(a);
a=null;
Console.WriteLine(b);
}
22
輸出結(jié)果:
mxh
mxh
請按任意鍵繼續(xù)...
C#中的委托是什么?如何理解委托?
簡單的說:委托是一種方法容器,里面可以裝載若干個具有相同簽名的方法引用地址,那么
調(diào)用委托,就相當(dāng)于同時調(diào)用了該容器內(nèi)的所有方法。
委托可以看做一種新的對象類型,具有面向?qū)ο蟮奶攸c,定義時可簽名接收參數(shù),委托實例
化時,可以把方法名作為個參數(shù)傳遞給委托對象,委托可以理解為指向函數(shù)的引用。生成
的委托對象可以代理所傳遞的方法,可以接收方法的參數(shù)。也就是定義了委托,可以在不用
調(diào)用原方法的情況下,調(diào)用那個方法
例:
例:
publicdelegatestringMyDel(stringnm,stringpwd);〃定義委托簽名接收兩個參數(shù)
staticvoidMain(string[]args)
{
MyDelmd:newMyDel(方法名)〃定義委托對象,其引月變量指向參數(shù)中的方
法
stringresult=md(“張三","1234”);〃調(diào)用委托對象,傳遞所指方法的參數(shù)
)
委托類似于C或C++中的函數(shù)指針。但不同的是委托是面向?qū)ο?、類型安全的?/p>
委托允許將方法作為參數(shù)進行傳遞。
23
委托可用于定義回調(diào)方法。
委托可以鏈接在一起;創(chuàng)建多個對象,使用“十二”累加到同一個委行對象上的引用上,例
如,可以對一個事件調(diào)用多個方法。
publicdelegatestringMyDeI(stringnm,stringpwd);〃定義委托簽名接收兩個參數(shù)
staticvoidMain(string[]args)
(
MyDelmd=newMyDel(方法1);〃委托對象,其引用變量指向參數(shù)中的方法
md+=newMyDel(方法2);
md+=newMyDel(方法3);
stringresult=md(“張三”,”1234");〃調(diào)用委托對象,傳遞所指方法的參數(shù)
I
方法不需要與委托簽名精確匹配。有關(guān)更多信息,請參見協(xié)變和逆變。
C#2o0版引入了匿名方法的概念,此類方法允許將代碼塊作為參數(shù)傳遞,以代替單獨定義
的方法。如:
usingSystem;
className
(
privatestringpName;
〃定義委托類型
publicdelegatevoidmyEventHandler(objectsender,NameEventArgse);
〃定義Get事件
publiceventmyEventHandlerGet;
internalstringText
24
get{returnthis.pName;}
set{
//2
this.pName=value;
this.OnGet(newNameEventArgs("Text屬性被更改了"));
)
)
voidOnGet(NameEventArgsc)//3
{
this.Gct(this,e);〃觸發(fā)事件
)
publicoverridestringIbStringO
{
return"Name類的對象";
I
publicclassNameEventArgs:EventArgs〃自定義事件信息類
{
stringpArgs;
publicNameEventArgs(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全國川教版信息技術(shù)九年級上冊第二單元第3節(jié)《揭開物聯(lián)網(wǎng)的面紗》說課稿
- 6 狼牙山五壯士 說課稿-2024-2025學(xué)年六年級語文上冊統(tǒng)編版
- 2006年江蘇無錫中考滿分作文《門其實開著》4
- Unit 1 Lesson 2 Jenny's House(說課稿)-2024-2025學(xué)年冀教版(三起)英語六年級上冊
- 2006年貴州黔東南中考滿分作文《堅持-燃燒成功的火種》
- 全國河大音像版初中信息技術(shù)七年級上冊第三章第一節(jié)《多媒體與多媒體技術(shù)》說課稿
- 制糖業(yè)的市場需求預(yù)測與分析考核試卷
- 外賣食品安全突發(fā)事件應(yīng)對考核試卷
- 2025年滬科版二年級英語下冊階段測試試卷含答案
- 2025年粵人版高二數(shù)學(xué)上冊月考試卷含答案
- 高三期末家長會 高中期末考試成績分析會ppt
- 15.5-博物館管理法律制度(政策與法律法規(guī)-第五版)
- 水泥廠鋼結(jié)構(gòu)安裝工程施工方案
- 2023光明小升初(語文)試卷
- 三年級上冊科學(xué)說課課件-1.5 水能溶解多少物質(zhì)|教科版
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設(shè)計原則、計算和檢驗
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 小學(xué)道德與法治學(xué)科高級(一級)教師職稱考試試題(有答案)
- 河北省承德市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 實用性閱讀與交流任務(wù)群設(shè)計思路與教學(xué)建議
- 應(yīng)急柜檢查表
評論
0/150
提交評論