愛悠閑 > .net面試題大全(有答案)

.net面試題大全(有答案)

分類: C#  |  標簽: .net,面試,asp.net,datagrid,dataset,sql server  |  作者: jackeyabc 相關  |  發布日期 : 2014-11-10  |  熱度 : 301°
1 (1)面向對象的語言具有__繼承性_性、_封裝性_性、_多態性 性。 (2)能用foreach遍歷訪問的對象需要實現 _ IEnumerable 接口或聲明_ GetEnumerator 方法的類型。1.c#中的三元運算符是__?:__ 2.當整數a賦值給一個object對象時,整數a將會被__裝箱___? 3.類成員有__3__種可訪問形式? 4.public static const int A=1;這段代碼有錯誤么?是什么? const成員都是static所以應該去掉static 5.float f=-123.567F; int i=(int)f; i的值現在是_-123____? 6.利用operator聲明且僅聲明了==,有什么錯誤么? 要同時修改Equale和GetHash() ? 重載了"==" 就必須重載 "!=" 7.委托聲明的關鍵字是___ delegate ___? 8.用sealed修飾的類有什么特點?不可被繼承 9.在Asp.net中所有的自定義用戶控件都必須繼承自_ System.Web.UI.UserControl _______? 10.在.Net中所有可序列化的類都被標記為__[serializable]___? 11.在.Net托管代碼中我們不用擔心內存漏洞,這是因為有了_ gC __? 12.下面的代碼中有什么錯誤嗎?_ abstract override 是不可以一起修飾______ using System; class A { public virtual void F(){ Console.WriteLine("A.F"); } } abstract class B:A { public abstract override void F(); } 13.當類T只聲明了私有實例構造函數時,則在T的程序文本外部,_不可以_(可以 or 不可以)從T派生出新的類,_不可以_(可以 or 不可以)直接創建T的任何實例。 14.下面這段代碼有錯誤么?case():不行 default; switch (i){ case(): CaseZero(); break; case 1: CaseOne(); break; case 2: dufault; CaseTwo(); break; } 15.在.Net中,類System.Web.UI.Page 可以被繼承么?可以 2. 不定項選擇: (1) 以下敘述正確的是: B C A. 接口中可以有虛方法。B. 一個類可以實現多個接口。 C. 接口不能被實例化。 D. 接口中可以包含已實現的方法。 (2) 從數據庫讀取記錄,你可能用到的方法有:B C D A. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader 2.對于一個實現了IDisposable接口的類,以下哪些項可以執行與釋放或重置非托管資源相關的應用程序定義的任務?(多選) ( ABC ) A.Close B.Dispose C.Finalize D.using E.Quit 3.以下關于ref和out的描述哪些項是正確的?(多選) ( ACD ) A.使用ref參數,傳遞到ref參數的參數必須最先初始化。 B.使用out參數,傳遞到out參數的參數必須最先初始化。 C.使用ref參數,必須將參數作為ref參數顯式傳遞到方法。 D.使用out參數,必須將參數作為out參數顯式傳遞到方法。 1.在對SQL Server 數據庫操作時應選用(A)。 a)SQL Server .NET Framework 數據提供程序; b)OLE DB .NET Framework 數據提供程序; c)ODBC .NET Framework 數據提供程序; d)Oracle .NET Framework數據提供程序; 2.下列選項中,(C)是引用類型。 a)enum類型 b)struct類型 c)string類型 d)int類型 3.關于ASP.NET中的代碼隱藏文件的描述正確的是(C) a)Web窗體頁的程序的邏輯由代碼組成,這些代碼的創建用于與窗體交互。編程邏輯唯一與用戶界面不同的文件中。該文件稱作為“代碼隱藏”文件,如果用C#創建,該文件將具有“.ascx.cs”擴展名。 b)項目中所有Web窗體頁的代碼隱藏文件都被編譯成.EXE文件。 c)項目中所有的Web窗體頁的代碼隱藏文件都被編譯成項目動態鏈接庫(.dll)文件。 d)以上都不正確。 4.以下描述錯誤的是(A) a)在C++中支持抽象類而在C#中不支持抽象類。 b)C++中可在頭文件中聲明類的成員而在CPP文件中定義類的成員,在C#中沒有頭文件并且在同一處聲明和定義類的成員。 c)在C#中可使用 new 修飾符顯式隱藏從基類繼承的成員。 d)在C#中要在派生類中重新定義基類的虛函數必須在前面加Override。 5.C#的數據類型有(A) a)值類型和調用類型; b)值類型和引用類型;c)引用類型和關系類型;d)關系類型和調用類型; 6.下列描述錯誤的是(D) a)類不可以多重繼承而接口可以; b)抽象類自身可以定義成員而接口不可以; c)抽象類和接口都不能被實例化; d)一個類可以有多個基類和多個基接口; 7.在DOM中,裝載一個XML文檔的方法(D) a)save方法 b)load方法 c)loadXML方法 d)send方法 8.下列關于構造函數的描述正確的是(C) a)構造函數可以聲明返回類型。 b)構造函數不可以用private修飾 c)構造函數必須與類名相同 d)構造函數不能帶參數 9.以下是一些C#中的枚舉型的定義,其中錯誤的用法有() a)public enum var1{ Mike = 100, Nike = 102, Jike } b)public enum var1{ Mike = 100, Nike, Jike } c)public enum var1{ Mike=-1 , Nike, Jike } d)public enum var1{ Mike , Nike , Jike } 10.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是(D)。 a)9 b)2 c)6 d)越界 11.接口是一種引用類型,在接口中可以聲明(A),但不可以聲明公有的域或私有的成員變量。 a)方法、屬性、索引器和事件; b)方法、屬性信息、屬性; c)索引器和字段; d)事件和字段; 12.ASP.NET框架中,服務器控件是為配合Web表單工作而專門設計的。服務器控件有兩種類型,它們是(A ) a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件 d)HTML控件和IIS控件 13.ASP.NET中,在Web窗體頁上注冊一個用戶控件,指定該控件的名稱為”Mike”,正確的注冊指令為( D) a) b) c) d)以上皆非 14.在ADO.NET中,對于Command對象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯誤的是(C)。 a)insert、update、delete等操作的Sql語句主要用ExecuteNonQuery()方法來執行; b)ExecuteNonQuery()方法返回執行Sql語句所影響的行數。 c)Select操作的Sql語句只能由ExecuteReader()方法來執行; d)ExecuteReader()方法返回一個DataReder對象; 15.下列ASP.NET語句(b)正確地創建了一個與SQL Server 2000數據庫的連接。 a)SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”); b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”); c)SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB); d)SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”); 16.Winform中,關于ToolBar控件的屬性和事件的描述不正確的是(D)。 a)Buttons屬性表示ToolBar控件的所有工具欄按鈕 b)ButtonSize屬性表示ToolBar控件上的工具欄按鈕的大小,如高度和寬度 c)DropDownArrows屬性表明工具欄按鈕(該按鈕有一列值需要以下拉方式顯示)旁邊是否顯示下箭頭鍵 d)ButtonClick事件在用戶單擊工具欄任何地方時都會觸發 17.在ADO.NET中執行一個存儲過程時,如果要設置輸出參數則必須同時設置參數的方向和(B ),必要時還要設置參數尺寸。 a)大小; b)上限; c)初始值; d)類型; 18.如果將窗體的FormBoderStyle設置為None,則( B)。 a)窗體沒有邊框并不能調整大小; b)窗體沒有邊框但能調整大小; c)窗體有邊框但不能調整大小; d)窗體是透明的; 19.如果要將窗體設置為透明的,則( B) a)要將FormBoderStyle屬性設置為None; b)要將Opacity屬性設置為小于100%得值; c)要將locked 屬性設置為True; d)要將 Enabled屬性設置為True; 20.下列關于C#中索引器理解正確的是(B/C ) a)索引器的參數必須是兩個或兩個以上 b)索引器的參數類型必須是整數型 c)索引器沒有名字 d)以上皆非 21.下面描述錯誤的是( C/D)。 a)窗體也是控件; b)窗體也是類; c)控件是從窗體繼承來的; d)窗體的父類是控件類; 22.要對注冊表進行操作則必須包含( D)。 a)System.ComponentModel命名空間; b)System.Collections命名空間; c)System.Threading命名空間; d)Microsoft.Win32命名空間; 23.要創建多文檔應用程序,需要將窗體的(D )屬性設為true。 a)DrawGrid; b)ShowInTaskbar; c)Enabled; d)IsMdiContainer; 24.如果設treeView1=new TreeView(),則treeView1.Nodes.Add("根節點")返回的是一個 ()類型的值。 a)TreeNode; b)int; c)string; d)TreeView; 25.下面關于XML的描述錯誤的是(D)。 a)XML提供一種描述結構化數據的方法; b)XML 是一種簡單、與平臺無關并被廣泛采用的標準; c)XML文檔可承載各種信息; d)XML只是為了生成結構化文檔; 1.裝箱、拆箱操作發生在: ( C ) A.類與對象之間 B.對象與對象之間 C.引用類型與值類型之間 D.引用類型與引用類型之間 2.用戶類若想支持Foreach語句需要實現的接口是: ( A ) A.IEnumerableB.IEnumerator C.ICollectionD.ICollectData 3..Net Framework通過什么與COM組件進行交互操作?( C ) A.Side By SideB.Web Service C.InteropD.PInvoke 4..Net依靠以下哪一項技術解決COM存在的Dll Hell問題的?( A ) A.Side By SideB.Interop C.PInvokeD.COM+ 5.裝箱與拆箱操作是否是互逆的操作?( B ) A.是B.否 6.以下哪個是可以變長的數組?( D ) A.Array B.string[] C.string[N] D.ArrayList 7.用戶自定義異常類需要從以下哪個類繼承:( A ) A.Exception B.CustomException C.ApplicationException D.BaseException 8.以下代碼段中能否編譯通過?請給出理由。 try { } catch(FileNotFoundException e1) { } catch(Exception e2) { } catch(IOException e3) { } catch { } 9.對于一個實現了IDisposable接口的類,以下哪些項可以執行與釋放或重置非托管資源相關的應用程序定義的任務?(多選) ( ABC ) A.Close B.DisposeC.Finalize D.using E.Quit 10.Net依賴以下哪項技術實現跨語言互用性?( C ) A.CLR B.CTS C.CLS D.CTT 11.請問: String類與StringBuilder類有什么區別?為什么在.Net類庫中要同時存在這2個類?(簡答) 如果要操作一個不斷增長的字符串,盡量不用String類,改用StringBuilder類。兩個類的工作原理不同:String類是一種傳統的修改字符串的方式,它確實可以完成把一個字符串添加到另一個字符串上的工作沒錯,但是在.NET框架下,這個操作實在是劃不來。因為系統先是把兩個字符串寫入內存,接著刪除原來的String對象,然后創建一個String對象,并讀取內存中的數據賦給該對象。這一來二去的,耗了不少時間。而使用 System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,能夠在已有對象的原地進行字符串的修改,簡單而且直接。當然,一般情況下覺察不到這二者效率的差異,但如果你要對某個字符串進行大量的添加操作,那么StringBuilder類所耗費的時間和 String類簡直不是一個數量級的。 12.以下哪個類是int的基類?( ) A.Int32 B.Object C.ValueType D.Int16 二、C# 部分* 13.以下哪些可以作為接口成員?(多選) ( ABDE ) A.方法B.屬性C.字段D.事件E.索引器 F.構造函數G.析構函數 14.以下關于ref和out的描述哪些項是正確的?(多選) ( ACD ) A.使用ref參數,傳遞到ref參數的參數必須最先初始化。 B.使用out參數,傳遞到out參數的參數必須最先初始化。 C.使用ref參數,必須將參數作為ref參數顯式傳遞到方法。 D.使用out參數,必須將參數作為out參數顯式傳遞到方法。 15.“訪問范圍限定于此程序或那些由它所屬的類派生的類型”是對以下哪個成員可訪問性含義的正確描述?( B ) A.public B.protected C.internal D.protected internal 16.class Class1 { private static int count = 0; static Class1() { count++; } public Class1() { count++; } } Class1 o1 = new Class1(); Class1 o2 = new Class1(); 請問,o1.Count的值是多少?( C ) A.1 B.2 C.3 D.4 17.abstract class BaseClass { public virtual void MethodA() { } public virtual void MethodB() { } } class Class1: BaseClass { public void MethodA(string arg) { } public override void MethodB() { } } class Class2: Class1 { new public void MethodB() { } } class MainClass { public static void Main(string[] args) { Class2 o = new Class2(); Console.WriteLine(o.MethodA()); } } 請問,o.MethodA調用的是: ( A ) A.BaseClass.MethodAB.Class2.MethodA C.Class1.MethodAD.都不是 18.請敘述屬性與索引器的區別。 屬性 索引器 通過名稱標識。 通過簽名標識。 通過簡單名稱或成員訪問來訪問。 通過元素訪問來訪問。 可以為靜態成員或實例成員。 必須為實例成員。 屬性的 get 訪問器沒有參數。 索引器的 get 訪問器具有與索引器相同的形參表。 屬性的 set 訪問器包含隱式 value 參數。 除了 value 參數外,索引器的 set 訪問器還具有與索引器相同的形參表。 19.請敘述const與readonly的區別。 每一個class至多只可以定義一個static構造函數,并且不允許增加訪問級別關鍵字,參數列必須為空。 為了不違背編碼規則,通常把static數據成員聲明為private,然后通過statci property提供讀寫訪問。 const 關鍵字用于修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數聲明引入給定類型的一個或多個常數。 const數據成員的聲明式必須包含初值,且初值必須是一個常量表達式。因為它是在編譯時就需要完全評估。 const成員可以使用另一個const成員來初始化,前提是兩者之間沒有循環依賴。 readonly在運行期評估賦值,使我們得以在確保“只讀訪問”的前提下,把object的初始化動作推遲到運行期進行。 readonly 關鍵字與 const 關鍵字不同: const 字段只能在該字段的聲明中初始化。readonly 字段可以在聲明或構造函數中初始化。因此,根據所使用的構造函數,readonly 字段可能具有不同的值。另外,const 字段是編譯時常數,而 readonly 字段可用于運行時常數。   readonly 只能在聲明時或者構造函數里面初始化,并且不能在 static 修飾的構造函數里面。 21.您需要創建一個ASP.NET應用程序,公司考慮使用Windows身份認證。   所有的用戶都存在于AllWin這個域中。您想要使用下列認證規則來配置這個應用程序:     a、 匿名用戶不允許訪問這個應用程序。     b、 所有雇員除了Tess和King都允許訪問這個應用程序。   請問您應該使用以下哪一個代碼段來配置這個應用程序?( A ) A.               B.               C.               D.           E.           22.您要創建一個顯示公司員工列表的應用程序。您使用一個DataGrid控件顯示員工的列表。您打算修改這個控件以便在這個Grid的Footer顯示員工合計數。請問您應該怎么做?( C? )   A.重寫OnPreRender事件,當Grid的Footer行被創建時顯示合計數。   B.重寫OnItemCreated事件,當Grid的Footer行被創建時顯示合計數。   C.重寫OnItemDataBound事件,當Grid的Footer行被創建時顯示合計數。   D. 重寫OnLayout事件,當Grid的Footer行被創建時顯示合計數。 23. 您要創建ASP.NET應用程序用于運行AllWin公司內部的Web站點,這個應用程序包含了50個頁面。您想要配置這個應用程序以便當發生一個 HTTP代碼錯誤時它可以顯示一個自定義的錯誤頁面給用戶。您想要花最小的代價完成這些目標,您應該怎么做?(多選)( CD )   A.在這個應用程序的Global.asax文件中創建一個Application_Error過程去處理ASP.NET代碼錯誤。   B.在這個應用程序的Web.config文件中創建一個applicationError節去處理ASP.NET代碼錯誤。   C.在這個應用程序的Global.asax文件中創建一個CustomErrors事件去處理HTTP錯誤。   D.在這個應用程序的Web.config文件中創建一個CustomErrors節去處理HTTP錯誤。   E.在這個應用程序的每一頁中添加一個Page指示符去處理ASP.NET 代碼錯誤。   F. 在這個應用程序的每一頁中添加一個Page指示符去處理ASP.NET HTTP錯誤。 24. 您的公司有一個DB Server,名為AllWin,其上裝了MS SQLSERVER 2000。現在需要您寫一個數據庫連接字符串,用以連接AllWin上SQL SERVER中的一個名為PubBase實例的Test庫。請問,應該選擇下面哪一個字符串?( B )   A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI”   B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”   C. “Data Source= AllWin /PubBase;Initial Category=PubBase;Integrated Security= SSPI”   D. “Data Source= AllWin / PubBase;Database=Test;Integrated Security= SSPI” 25. 您為AllWin公司創建了一個ASP.NET應用程序。這個應用程序調用一個 Xml Web Service。這個 Xml Web Service 將返回一個包含了公司雇員列表的DataSet對象。請問您該如何在這個程序中使用這個 Xml Web Service?( ? )   A.在“引用”對話框的.Net標簽中選擇 System.Web.Services.dll。   B.在“Web引用”對話框中輸入這個 XML Web service 的地址。   C.在您的 Global.asax.cs 中添加一條 using 語句并指定這個 XML Web service 的地址。   D.在您的 Global.asax.cs 中寫一個事件處理器導入這個 Xml Web Service 相應的 .wsdl 和 .disco 文件。 26. 您要創建一個ASP.NET應用程序在DataGrid控件中顯示一個經過排序的列表。產品數據被存放于一個名為PubBase的Microsoft SQL Server 數據庫。每個產品的主鍵是ProductID,Numeric型并且每個產品有一個字母描述字段,名為ProductName。您使用一個 SqlDataAdapter對象和一個SqlCommand對象通過調用一個存儲過程從數據庫中獲取產品數據。您將SqlCommand對象的 CommandType屬性設置為CommandType.StoredProcedure,并將它的CommandText屬性設置為 procProductList。您成功的獲取了一個DataTable對象,其中是已經按ProductID降序排列的產品列表。您打算顯示以相反的字母順序排列的ProductName,請問該怎么做? ( B )   A. 將SqlCommand對象的CommandType屬性修改為CommandType.Text,將CommandText屬性修改為”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后將這個DataTable對象綁定到DataGrid控件。   B. 創建一個基于這個DataTable對象的新的DataView并將這個DataView的Sort屬性設置為“ProductName DESC”。然后將這個DataView對象綁定到DataGrid控件。   C. 將DataGrid控件的AllowSorting屬性設置為True,并將DataGridColumn的SortExpression屬性設置為 “ProductName DESC”.以顯示ProductName。然后將這個DataTable對象綁定到DataGrid控件。   D. 將DataTable對象的DisplayExpression屬性設置為 “ORDER BY ProductName DESC”.。然后將這個DataTable對象綁定到DataGrid控件。 76.C#代碼實現,確保windows程序只有一個實例(instance) /// ///應用程序的主入口點。 /// [STAThread] staticvoid Main() { //防止程序多次運行 if(!OneInstance.IsFirst("GetPayInfo")) { MessageBox.Show ("警告:程序正在運行中! 請不要重復打開程序!可在右下角系統欄找到!","程序錯誤提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop); return; } Application.Run(new Form1()); } // ******************* 防止程序多次執行 ************************** publicabstractclass OneInstance { /// ///判斷程序是否正在運行 /// /// 程序名稱 ///如果程序是第一次運行返回True,否則返回False publicstaticbool IsFirst(string appId) { bool ret=false; if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero) { CreateMutex(IntPtr.Zero,0,appId); ret=true; } return ret; } [DllImport("Kernel32.dll",CharSet=CharSet.Auto)] privatestaticextern IntPtr OpenMutex( uint dwDesiredAccess, // access int bInheritHandle, // inheritance option string lpName // object name ); [DllImport("Kernel32.dll",CharSet=CharSet.Auto)] privatestaticextern IntPtr CreateMutex( IntPtr lpMutexAttributes, // SD int bInitialOwner, // initial owner string lpName // object name ); } 3. 簡述 private、 protected、 public、 internal 修飾符的訪問權限。 private : 私有成員, 在類的內部才可以訪問。protected : 保護成員,該類內部和繼承類中可以訪問。public : 公共成員,完全公開,沒有訪問限制。internal: 在同一命名空間內可以訪問。 4. 寫出一條Sql語句: 取出表A中第31到第40記錄(SQLServer, 以自動增長的ID作為主鍵, 注意:ID可能不是連續的。) select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A) 5 .列舉ASP.NET 頁面之間傳遞值的幾種方式。 1. 使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session變量 3.使用Server.Transfer 2。請說明在.net中常用的幾種頁面間傳遞參數的方法,并說出他們的優缺點。 session(viewstate) 簡單,但易丟失 application 全局 cookie 簡單,但可能不支持,可能被偽造 input ttype="hidden" 簡單,可能被偽造 url參數簡單,顯示于地址欄,長度有限 數據庫穩定,安全,但性能相對弱 2.override與重載的區別 Override用來重寫父類的方法,重載使用相同名的方法或操作符擁有不同類型的參數 3、.net的錯誤處理機制是什么 .net錯誤處理機制采用try->catch->finally結構,發生錯誤時,層層上拋,直到找到匹配的Catch為止。 4、C#中接口和類的異同 接口和類都是類,不同的事,接口只包含方法或屬性的聲明,不包含具體實現方法的代碼,接口可以實現多繼承,而類只能是單繼承,繼承接口的類必須實現接口中聲明的方法或屬性。接口主要定義一種規范,統一調用方法,在大型項目中接口正發揮日益重要的作用。 4、DataReader和DataSet的異同 DataReader 和DataSet最大的區別在于,DataReader使用時始終占用SqlConnection,在線操作數據庫..任何對SqlConnection 的操作都會引發DataReader的異常..因為DataReader每次只在內存中加載一條數據,所以占用的內存是很小的..因為 DataReader的特殊性和高性能.所以DataReader是只進的..你讀了第一條后就不能再去讀取第一條了.. DataSet則是將數據一次性加載在內存中.拋棄數據庫連接..讀取完畢即放棄數據庫連接..因為DataSet將數據全部加載在內存中.所以比較消耗內存...但是確比DataReader要靈活..可以動態的添加行,列,數據.對數據庫進行回傳更新操作... 1. 在c#中using和new這兩個關鍵字有什么意義,請寫出你所知道的意義? Using 引入一個名子空間,或在使用了一個對像后自動調用其IDespose,New 實例化一個對像,或修飾一個方法,表此方法完全重寫此方法 2.在下面的例子里 using System; class A { public A(){ PrintFields(); } public virtual void PrintFields(){} } class B:A { int x=1; int y; public B(){ y=-1; } public override void PrintFields(){ Console.WriteLine("x={0},y={1}",x,y); } 當使用new B()創建B的實例時,產生什么輸出?X=1,Y=0 3.下面的例子中 using System; class A { public static int X; static A(){ X=B.Y+1; } } class B { public static int Y=A.X+1; static B(){} static void Main(){ Console.WriteLine("X={0},Y={1}",A.X,B.Y); } } 產生的輸出結果是什么?x=1,y=2 4.談談類和結構的區別? 最大區別一個是引用類型,一個是值類型 默認成員訪問為public是另外一個區別 1. 在.net(C# or vb.net)中如何獲得當前窗體或控件的句柄,特別是控件本身的句柄(請列舉)。 this(C#) Me(vb.net). 2在.net(C# or vb.net)中如何用戶自定義消息,并在窗體中處理這些消息。 在form中重載DefWndProc函數來處理消息: protected override void DefWndProc ( ref System.WinForms.Message m ) { switch(m.msg) { case WM_Lbutton :  ///string與MFC中的CString的Format函數的使用方法有所不同  string message = string.Format("收到消息!參數為:{0},{1}",m.wParam,m.lParam);  MessageBox.Show(message);///顯示一個消息框  break; case USER: 處理的代碼 default:  base.DefWndProc(ref m);///調用基類函數處理非自定義消息。  break; } } 3. 在.net(C# or vb.net)如何啟動另一個程序。process 4. 在.net(C# or vb.net)中如何取消一個窗體的關閉 private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel=true; } 5. 在.net(C# or vb.net)中,Appplication.Exit 還是 Form.Close有什么不同? 答案:一個是退出整個應用程序,一個是關閉其中一個form 6. 在C#中有一個double型的變量,比如10321.5,比如122235401.21644,作為貨幣的值如何按各個不同國家的習慣來輸出。比如美國用$10,321.50和$122,235,401.22而在英國則為£10 321.50和£122 235 401.22 答案: System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US"); //System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");為英國貨幣類型 decimal y = 9999999999999999999999999999m; string str = String.Format(MyCulture,"My amount = {0:c}",y); 7. 某一密碼僅使用K、L、M、N、O共5個字母,密碼中的單詞從左向右排列,密碼單詞必須遵循如下規則: (1) 密碼單詞的最小長度是兩個字母,可以相同,也可以不同 (2) K不可能是單詞的第一個字母 (3) 如果L出現,則出現次數不止一次 (4) M不能使最后一個也不能是倒數第二個字母 (5) K出現,則N就一定出現 (6) O如果是最后一個字母,則L一定出現 問題一:下列哪一個字母可以放在LO中的O后面,形成一個3個字母的密碼單詞? A) K B)L C) M D) N 答案:B 問題二:如果能得到的字母是K、L、M,那么能夠形成的兩個字母長的密碼單詞的總數是多少? A)1個 B)3個 C)6個 D)9個 答案:A 問題三:下列哪一個是單詞密碼? A) KLLN B) LOML C) MLLO D)NMKO 答案:C 8. 62-63=1 等式不成立,請移動一個數字(不可以移動減號和等于號),使得等式成立,如何移動? 答案:62移動成2的6次方 new有幾種用法 第一種:new Class(); 第二種:覆蓋方法 public new XXXX(){} 第三種:new 約束指定泛型類聲明中的任何類型參數都必須有公共的無參數構造函數。 2.如何把一個array復制到arrayList里 foreach( object o in array )arrayList.Add(o); 3.datagrid.datasouse可以連接什么數據源 [dataset,datatable,dataview] dataset,datatable,dataview , IList 4.概述反射和序列化 反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態地創建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然后,可以調用類型的方法或訪問其字段和屬性 序列化:序列化是將對象轉換為容易傳輸的格式的過程。例如,可以序列化一個對象,然后使用 HTTP 通過 Internet 在客戶端和服務器之間傳輸該對象。在另一端,反序列化將從該流重新構造對象。 5.概述o/r mapping 的原理 利用反射,配置 將類于數據庫表映射 7.用sealed修飾的類有什么特點 sealed 修飾符用于防止從所修飾的類派生出其它類。如果一個密封類被指定為其它類的基類,則會發生編譯時錯誤。 密封類不能同時為抽象類。 sealed 修飾符主要用于防止非有意的派生,但是它還能促使某些運行時優化。具體說來,由于密封類永遠不會有任何派生類,所以對密封類的實例的虛擬函數成員的調用可以轉換為非虛擬調用來處理。 11.詳述.NET里class和struct的異同! class:放在 ? struct放在? struct值傳遞 類與結構有很多相似之處:結構可以實現接口,并且可以具有與類相同的成員類型。然而,結構在幾個重要方面不同于類:結構為值類型而不是引用類型,并且結構不支持繼承。結構的值存儲在“在堆棧上”或“內聯”。細心的程序員有時可以通過聰明地使用結構來增強性能。 12.概述.NET里對 remoting 和 webservice 兩項技術的理解和實際中的應用。 遠程邏輯調用,remoing接口只能用在.net中 13.什么是code-behind技術 aspx and cs 14.概述三層結構體系 web/business/dataaccess 15.asp.net如何實現MVC模式,舉例說明! web/business/dataaccess 2.什么是ASP.net中的用戶控件 答:用戶控件就是.ascx擴展名的東西嘍,可以拖到不同的頁面中調用,以節省代碼.比如登陸可能在多個頁面上有,就可以做成用戶控件,但是有一個問題就是用戶控件拖到不同級別的目錄下后里面的圖片等的相對路徑會變得不準確,需要自已寫方法調整. 3.什么叫應用程序域?什么是受管制的代碼?什么是強類型系統?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋? 答:裝箱就是把值類型轉成引用類型,從MS IL角度看好像是boxing,沒記錯的話是把值從堆棧轉到堆中.拆箱相反,重載就是指一個方法名同,參數個數不同,返回值可以相同的方法.CLR是通用語言運行時,其它的不清楚. 4.列舉一下你所了解的XML技術及其應用 答:XML可是好東西,保存配置,站與站之間的交流,WEB SERVICE都要用它. 5.值類型和引用類型的區別?寫出C#的樣例代碼。 答:結構是值類型,類是引用類型,所以傳結構就是值類型的應用啦,傳對象或類就是引用類型的,這個不用多寫了吧. 6.ADO.net中常用的對象有哪些?分別描述一下。 答:connection command sqladapter dataset datatable dataview等等.寫不完了. 7.如何理解委托? 答:據說相當于函數指針,定義了委托就可以在不調用原方法名稱的情況下調用那個方法. msdn2005中是這樣解釋的: 委托具有以下特點: 委托類似于 C++ 函數指針,但它是類型安全的。 委托允許將方法作為參數進行傳遞。 委托可用于定義回調方法。 委托可以鏈接在一起;例如,可以對一個事件調用多個方法。 方法不需要與委托簽名精確匹配。有關更多信息,請參見協變和逆變。 C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作為參數傳遞,以代替單獨定義的方法。 8.C#中的接口和類有什么異同。 答:接口是負責功能的定義,項目中通過接口來規范類,操作類以及抽象類的概念! 而類是負責功能的具體實現! 在類中也有抽象類的定義,抽象類與接口的區別在于: 抽象類是一個不完全的類,類里面有抽象的方法,屬性,也可以有具體的方法和屬性,需要進一步的專業化。 但接口是一個行為的規范,里面的所有東西都是抽象的! 一個類只可以繼承一個基類也就是父類,但可以實現多個接口 9.。net中讀寫數據庫需要用到哪些類?他們的作用 答:這個類自已可以寫的啊,你是指基類嗎?那configuration,sqlconnection,sqlcommand等都要用到. 10.UDP連接和TCP連接的異同。 答:前者只管傳,不管數據到不到,無須建立連接.后者保證傳輸的數據準確,須要連結. 11.ASP.net的身份驗證方式有哪些?分別是什么原理? 答:form認證,windows集成認證等,原理不清楚. 13.什么是code-Behind技術。 答:代碼分離,這是個明智的東西,像ASP這樣混成一堆很不爽.或者可以理解成HTML代碼寫在前臺,C#代碼寫在后臺.當然前臺也有腳本,類的調用等,其實寫在一起也是可以的. 15..net中讀寫XML的類都歸屬于哪些命名空間? 答:System.Xml 16.解釋一下UDDI、WSDL的意義及其作用。 答: 17.什么是SOAP,有哪些應用。 答: SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分布式的環境中交換信息并執行遠程過程調用的協議,是一個基于XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最常用的還是HTTP協議),可以允許任何類型的對象或代碼,在任何平臺上,以任何一直語言相互通信。這種相互通信采用的是XML格式的消息,具體請看: http://playist.blogchina.com/2521621.html 20.常用的調用webservice方法有哪些? 答: 可以從瀏覽器、ASP頁或其他WEB服務調用可以使用HTTP-GET HTTP-POST訪問WEB服務也可以從ASP頁或其他WEB服務向其他WEB服務發出SOAP請求HTTP-GET HTTP-POST SOAP 使用WEB服務代理 6. 私有程序集與共享程序集有什么區別? 一個私有程序集通常為單個應用程序所使用,并且存儲于這個應用程序所在的目錄之中,或此目錄下面的一個子目錄中。共享程序集通常存儲在全局程序集緩存(Global Assembly Cache)之中,這是一個由.NET運行時所維護的程序集倉庫。共享程序集通常是對許多應用程序都有用的代碼庫,比如.NET Framework類。 7. 請解釋進程與線程的區別?進程與程序的區別? 一般,一個應用程序對應于一個或多個進程,可以把進程看作是該應用程序在*作系統中的標識;而一個進程通常由多個線程組成,而線程是*作系統為該應用程序分配處理時間的最小單元。 8. CLR與IL分別是什么含義? CLR: 公共語言運行時,類似于Java中的JVM,Java虛擬機;在.Net環境下,各種編程語言使用一種共同的基礎資源環境,這就是CLR,CLR將直接與 *作系統進行通信,而編程語言如C#.NET將盡量避免直接與*作系統直接通信,加強了程序代碼的執行安全性,可以這樣看:CLR就是具體的編程語言如: C#.NET與*作系統之間的翻譯,同時它為具體的編程語言提供了許多資源: IL,中間語言,也稱MSIL,微軟中間語言,或CIL,通用中間語言;所有.NET源代碼(不管用哪種語言編寫)在進行編譯時都被編譯成IL。在應用程序運行時被即時(Just-In-Time,JIT)編譯器處理成為機器碼,被解釋及執行。 10 .請解釋ASP。NET中以什么方式進行數據驗證 Aps.net 中有非空驗證,比較驗證,取值范圍驗證,正則表達式驗證及客戶自定義驗證五大控件,另還有一個集中驗證信息處理控件 11. WEB控件可以激發服務端事件,請談談服務端事件是怎么發生并解釋其原理?自動傳回是什么?為什么要使用自動傳回。 在web控件發生事件時,客戶端采用提交的形式將數據交回服務端,服務端先調用Page_Load事件,然后根據傳回的狀態信息自動調用服務端事件自動傳回是當我們在點擊客戶端控件時,采用提交表單的形式將數據直接傳回到務端 只有通過自動傳回才能實現服務端事件的機制,如果沒有自動回傳機制就只能調用客戶端事件,而不能調用服務端事件 12. WEB控件及HTML服務端控件能否調用客戶端方法?如果能,請解釋如何調用? 可以調用 例如: runat="server" onclick="clientfunction();"> 13. 請解釋web.config文件中的重要節點 appSettings包含自定義應用程序設置。 system.web 系統配置 compilation動態調試編譯設置 customErrors自定義錯誤信息設置 authentication身份驗證,此節設置應用程序的身份驗證策略。 authorization授權, 此節設置應用程序的授權策略. 14. 請解釋ASP。NET中的web頁面與其隱藏類之間的關系? 一個ASP.NET頁面一般都對應一個隱藏類,一般都在ASP.NET頁面的聲明中指定了隱藏類例如一個頁面Tst1.aspx的頁面聲明如下 Codebehind="Tst1.aspx.cs" 表明經編譯此頁面時使用哪一個代碼文件 Inherits="T1.Tst1" 表用運行時使用哪一個隱藏類 15. 什么是viewstate,能否禁用?是否所用控件都可以禁用? Viewstate是保存狀態的一種機制,EnableViewState屬性設置為false即可禁用 16. 當發現不能讀取頁面上的輸入的數據時很有可能是什么原因造成的?怎么解決 很有可能是在Page_Load中數據處理時沒有進行Page的IsPostBack屬性判斷 17. 請解釋什么是上下文對象,在什么情況下要使用上下文對象 上下文對象是指HttpContext類的Current 屬性,當我們在一個普通類中要訪問內置對象(Response,Request,Session,Server,Appliction等)時就要以使用此對象 18. 請解釋轉發與跳轉的區別? 轉發就是服務端的跳轉A頁面提交數據到B頁面,B頁面進行處理然后從服務端跳轉到其它頁面 跳轉就是指客戶端的跳轉 1.請簡述一下用Socket進行同步通訊編程的詳細步驟 1、在應用程序和遠程設備中使用協議和網絡地址初始化套接字 2、在應用程序中通過指定端口和地址建立監聽 3、遠程設備發出連接請求 4、應用程序接受連接產生通信scoket 5、應用程序和遠程設備開始通訊(在通訊中應用程序將掛起直到通訊結束) 6、通訊結束,關閉應用程序和遠程設備的Socket回收資源 1、在C#中,string str = null 與 string str = “” 請盡量使用文字或圖象說明其中的區別。 string str = null 是不給他分配內存空間,而string str = “”給它分配長度為空字符竄的內存空間. 2、請詳述在dotnet中類(class)與結構(struct)的異同:(10分) Class可以被實例化,屬于引用類型,是分配在內存的堆上的,Struct屬于值類型,是分配在內存的棧上的. 3、根據委托(delegate)的知識,請完成以下用戶控件中代碼片段的填寫:(10) namespace test { public delegate void OnDBOperate(); public class UserControlBase : System.Windows.Forms.UserControl { public event OnDBOperate OnNew; privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e) { if(e.Button.Equals(BtnNew)) { //請在以下補齊代碼用來調用OnDBOperate委托簽名的OnNew事件。 } } } } ____________________________________________________________________ if( OnNew != null ) OnNew( this, e ); 4、分析以下代碼,完成填空(10分) string strTmp = "abcdefg某某某"; int i= System.Text.Encoding.Default.GetBytes(strTmp).Length; int j= strTmp.Length; 以上代碼執行完后,i= j= i還真的不知道, j=10 5、SQLSERVER服務器中,給定表 table1 中有兩個字段 ID、LastUpdateDate,ID表示更新的事務號, LastUpdateDate表示更新時的服務器時間,請使用一句SQL語句獲得最后更新的事務號。(10) select top ID from table1 order by LastUpdateData desc 8、簡要談一下您對微軟.NET 構架下remoting和webservice兩項技術的理解以及實際中的應用。(10) remoting 是.net 中用來跨越machine, process, appdomain 進行方法調用的技術,對于三成結構的程序,就可以使用remoting技術來構建.它是分布應用的基礎技術.相當于以前的DCOM Web Service是一種構建應用程序的普通模型,并能在所有支持internet網通訊的操作系統上實施。Web Service令基于組件的開發和web的結合達到最佳,基于組件的對象模型 9.什么叫做SQL注入,如何防止?請舉例說明。 利用sql關鍵字對網站進行攻擊。過濾關鍵字??等 所謂SQL注入(SQL Injection),就是利用程序員對用戶輸入數據的合法性檢測不嚴或不檢測的特點,故意從客戶端提交特殊的代碼,從而收集程序及服務器的信息,從而獲取想得到的資料。 http://localhost/lawjia/show.asp?ID=444 and user>0,這時,服務器運行Select * from 表名 where 字段=444 and user>0這樣的查詢,當然,這個語句是運行不下去的,肯定出錯,錯誤信息如下:   ·錯誤類型: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC SQL Server Driver][SQL Server]將 nvarchar 值 ??sonybb?? 轉換為數據類型為 int 的列時發生語法錯誤。 a 產生一個int數組,長度為100,并向其中隨機插入1-100,并且不能重復。 int[] intArr=new int[100]; ArrayList myList=new ArrayList(); Random rnd=new Random(); while(myList.Count<100) { int num=rnd.Next(1,101); if(!myList.Contains(num)) myList.Add(num); } for(int i=0;i<100;i++) intArr[i]=(int)myList[i]; 20.請敘述類與結構的區別。   1)、結構是值類型;   2)、結構不支持繼承;   3)、結構不能定義默認的構造函數;   4)、結構不能定義析構函數;   5)、結構不能使用初始值設置域值。  


快乐彩中奖说明