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)<%@Register TagPrefix = 「Mike」 TagName = 「Space2」 Src = 「myX.ascx」%>
b)<%@Register TagPrefix = 「Space2」 TagName = 「Mike」 Src = 「myX.ascx」%>
c)<%@Register TagPrefix = 「SpaceX」 TagName = 「Space2」 Src = 「Mike」%>
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
2、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. <authorization>
<deny users=」allwin\tess, allwin\king」>
<allow users=」*」>
<deny users=」?」>
</authorization>
B. <authorization>
<allow users=」*」>
<deny users=」allwin\tess, allwin\king」>
<deny users=」?」>
</authorization>
C. <authorization>
<deny users=」allwin\tess, allwin\king」>
<deny users=」?」>
<allow users=」*」>
</authorization>
D. <authorization>
<allow users=」allwin\tess, allwin\king」>
<allow users=」*」>
</authorization>
E.<authorization>
<allow users=」*」>
<deny users=」allwin\tess, allwin\king」>
</authorization>
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)
///<summary>
///應用程序的主入口點。
///</summary>
[STAThread]
staticvoid Main()
{
//防止程序屢次運行
if(!OneInstance.IsFirst("GetPayInfo"))
{
MessageBox.Show ("警告:程序正在運行中! 請不要重複打開程序!可在右下角系統欄找到!","程序錯誤提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
Application.Run(new Form1());
}
// ******************* 防止程序屢次執行 **************************
publicabstractclass OneInstance
{
///<summary>
///判斷程序是否正在運行
///</summary>
///<param name="appId">程序名稱</param>
///<returns>若是程序是第一次運行返回True,不然返回False</returns>
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服務端控件可否調用客戶端方法?若是能,請解釋如何調用?
能夠調用
例如:<asp:TextBox id="TextBox1" onclick="
clientfunction();" runat="server">
</asp:TextBox>
<INPUT id="Button2" value="Button" name="Button2"
runat="server" onclick="
clientfunction();">
13
. 請解釋web.config文件中的重要節點
appSettings包含自定義應用程序設置。
system.web 系統配置
compilation動態調試編譯設置
customErrors自定義錯誤信息設置
authentication身份驗證,此節設置應用程序的身份驗證策略。
authorization受權, 此節設置應用程序的受權策略.
14
. 請解釋ASP。NET中的web頁面與其隱藏類之間的關係?
一個ASP.NET頁面通常都對應一個隱藏類,通常都在ASP.NET頁面的聲明中指定了隱藏類例如一個頁面Tst1.aspx的頁面聲明以下
<%@ Page language="c#" Codebehind="Tst1.aspx.cs" AutoEventWireup="false" Inherits="T1.Tst1" %>
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進行同步通信編程的詳細步驟
一、在應用程序和遠程設備中使用協議和網絡地址初始化套接字
二、在應用程序中經過指定端口和地址創建監聽
三、遠程設備發出鏈接請求
四、應用程序接受鏈接產生通訊scoket
五、應用程序和遠程設備開始通信(在通信中應用程序將掛起直到通信結束)
六、通信結束,關閉應用程序和遠程設備的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 );
四、分析如下代碼,完成填空(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)、結構不能使用初始值設置域值。