熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

網友整理 .net 面試題(附答案)

2013-11-13 10:12:33  來源: .NET編程 
編者注加粗部分的是答案
 
()面向對象的語言具有__繼承性_性_封裝性_性_多態性
()能用foreach遍歷訪問的對象需要實現 _ IEnumerable_ 接口或聲明_ GetEnumerator_ 方法的類型
()c#中的三元運算符是__?:__
當整數a賦值給一個object對象時整數a將會被__裝箱___?
類成員有____種可訪問形式?
public static const int A=;這段代碼有錯誤麼?是什麼? const成員都是static所以應該去掉static
float f=F;
int i=(int)f;
i的值現在是_____?
利用operator聲明且僅聲明了==有什麼錯誤麼? 要同時修改Equale和GetHash() ? 重載了== 就必須重載 !=
委托聲明的關鍵字是___ delegate ___?
用sealed修飾的類有什麼特點?不可被繼承
在中所有的自定義用戶控件都必須繼承自_ SystemWebUIUserControl _______?
Net中所有可序列化的類都被標記為__[serializable]___?
Net托管代碼中我們不用擔心內存漏洞這是因為有了_ gC __?
下面的代碼中有什麼錯誤嗎?_ abstract override 是不可以一起修飾______
using System;
class A
{
public virtual void F(){
ConsoleWriteLine(AF);
}
}
abstract class B:A
{
public abstract override void F();
}
當類T只聲明了私有實例構造函數時則在T的程序文本外部_不可以_(可以 or 不可以)從T派生出新的類_不可以_(可以 or 不可以)直接創建T的任何實例
下面這段代碼有錯誤麼?case():不行 default;
switch (i){
case():
CaseZero();
break;
case :
CaseOne();
break;
case :
dufault;
CaseTwo();
break;
}
Net中類SystemWebUIPage 可以被繼承麼?可以
不定項選擇
() 以下敘述正確的是 B C
A 接口中可以有虛方法B 一個類可以實現多個接口 C 接口不能被實例化 D 接口中可以包含已實現的方法
   () 從數據庫讀取記錄你可能用到的方法有B C D
      A ExecuteNonQuery            B ExecuteScalar      C Fill                        D ExecuteReader
對於一個實現了IDisposable接口的類以下哪些項可以執行與釋放或重置非托管資源相關的應用程序定義的任務?(多選)   (        ABC         )  
  AClose BDispose CFinalize  
  Dusing EQuit  
  以下關於ref和out的描述哪些項是正確的?(多選)   (    ACD   )  
  A使用ref參數傳遞到ref參數的參數必須最先初始化  
  B使用out參數傳遞到out參數的參數必須最先初始化  
  C使用ref參數必須將參數作為ref參數顯式傳遞到方法  
  D使用out參數必須將參數作為out參數顯式傳遞到方法 
在對SQL Server 數據庫操作時應選用(A
a)SQL Server NET Framework 數據提供程序
b)OLE DB NET Framework 數據提供程序
c)ODBC NET Framework 數據提供程序
d)Oracle NET Framework數據提供程序
a)enum類型   b)struct類型 c)string類型   d)int類型
關於ASPNET中的代碼隱藏文件的描述正確的是(C
a)Web窗體頁的程序的邏輯由代碼組成這些代碼的創建用於與窗體交互編程邏輯唯一與用戶界面不同的文件中該文件稱作為代碼隱藏文件如果用C#創建該文件將具有ascxcs擴展名
b)項目中所有Web窗體頁的代碼隱藏文件都被編譯成EXE文件
c)項目中所有的Web窗體頁的代碼隱藏文件都被編譯成項目動態鏈接庫(dll)文件
d)以上都不正確
以下描述錯誤的是(A)
a)在C++中支持抽象類而在C#中不支持抽象類
b)C++中可在頭文件中聲明類的成員而在CPP文件中定義類的成員在C#中沒有頭文件並且在同一處聲明和定義類的成員
c)在C#中可使用 new 修飾符顯式隱藏從基類繼承的成員
d)在C#中要在派生類中重新定義基類的虛函數必須在前面加Override
C#的數據類型有(A)
a)值類型和調用類型 b)值類型和引用類型c)引用類型和關系類型d)關系類型和調用類型
下列描述錯誤的是(D)
a)類不可以多重繼承而接口可以
b)抽象類自身可以定義成員而接口不可以
c)抽象類和接口都不能被實例化
d)一個類可以有多個基類和多個基接口
在DOM中裝載一個XML文檔的方法(D)
a)save方法   b)load方法 c)loadXML方法 d)send方法
下列關於構造函數的描述正確的是(C)
a)構造函數可以聲明返回類型
b)構造函數不可以用private修飾
c)構造函數必須與類名相同
d)構造函數不能帶參數
以下是一些C#中的枚舉型的定義其中錯誤的用法有()
a)public enum var{ Mike = Nike = Jike }
b)public enum var{ Mike = Nike Jike }
c)public enum var{ Mike= Nike Jike }
d)public enum var{ Mike Nike Jike }
 
int[][] myArray=new int[][]{new int[]{}new int[]{}new int[]{}}; myArray[][]的值是(D)
a)                   b)             c)              d)越界
接口是一種引用類型在接口中可以聲明(A)但不可以聲明公有的域或私有的成員變量
a)方法屬性索引器和事件 b)方法屬性信息屬性 c)索引器和字段    d)事件和字段
ASPNET框架中服務器控件是為配合Web表單工作而專門設計的服務器控件有兩種類型它們是(A )
a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件    d)HTML控件和IIS控件
ASPNET中在Web窗體頁上注冊一個用戶控件指定該控件的名稱為Mike正確的注冊指令為( D)
a)<%@Register TagPrefix = Mike TagName = Space Src = myXascx%>
b)<%@Register TagPrefix = Space TagName = Mike Src = myXascx%>
c)<%@Register TagPrefix = SpaceX TagName = Space Src = Mike%>
d)以上皆非
在ADONET中對於Command對象的ExecuteNonQuery()方法和ExecuteReader()方法下面敘述錯誤的是(C)
a)insertupdatedelete等操作的Sql語句主要用ExecuteNonQuery()方法來執行
b)ExecuteNonQuery()方法返回執行Sql語句所影響的行數
c)Select操作的Sql語句只能由ExecuteReader()方法來執行
d)ExecuteReader()方法返回一個DataReder對象
下列ASPNET語句(b)正確地創建了一個與SQL Server 數據庫的連接
a)SqlConnection con = new Connection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
b)SqlConnection con = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
c)SqlConnection con = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
d)SqlConnection con = new OleDbConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
Winform中關於ToolBar控件的屬性和事件的描述不正確的是(D)
a)Buttons屬性表示ToolBar控件的所有工具欄按鈕
b)ButtonSize屬性表示ToolBar控件上的工具欄按鈕的大小如高度和寬度
c)DropDownArrows屬性表明工具欄按鈕(該按鈕有一列值需要以下拉方式顯示)旁邊是否顯示下箭頭鍵
d)ButtonClick事件在用戶單擊工具欄任何地方時都會觸發
在ADONET中執行一個存儲過程時如果要設置輸出參數則必須同時設置參數的方向和(B )必要時還要設置參數尺寸
a)大小             b)上限              c)初始值            d)類型
如果將窗體的FormBoderStyle設置為None則( B)
a)窗體沒有邊框並不能調整大小        b)窗體沒有邊框但能調整大小
c)窗體有邊框但不能調整大小          d)窗體是透明的
如果要將窗體設置為透明的則( B)
a)要將FormBoderStyle屬性設置為None      b)要將Opacity屬性設置為小於%得值
c)要將locked 屬性設置為True              d)要將 Enabled屬性設置為True
下列關於C#中索引器理解正確的是(B/C )
a)索引器的參數必須是兩個或兩個以上   b)索引器的參數類型必須是整數型
c)索引器沒有名字                     d)以上皆非
下面描述錯誤的是( C/D)
a)窗體也是控件 b)窗體也是類 c)控件是從窗體繼承來的 d)窗體的父類是控件類
要對注冊表進行操作則必須包含( D)
a)SystemComponentModel命名空間 b)SystemCollections命名空間
c)SystemThreading命名空間      d)MicrosoftWin命名空間
要創建多文檔應用程序需要將窗體的(D )屬性設為true
a)DrawGrid         b)ShowInTaskbar          c)Enabled            d)IsMdiContainer
如果設treeView=new TreeView()則treeViewNodesAdd(根節點)返回的是一個 ()類型的值
a)TreeNode
b)int
c)string
d)TreeView
下面關於XML的描述錯誤的是(D)
a)XML提供一種描述結構化數據的方法
b)XML 是一種簡單與平台無關並被廣泛采用的標准
c)XML文檔可承載各種信息
d)XML只是為了生成結構化文檔
裝箱拆箱操作發生在: (  C  )
A類與對象之間   B對象與對象之間
C引用類型與值類型之間   D引用類型與引用類型之間
用戶類若想支持Foreach語句需要實現的接口是: (  A  )
AIEnumerableBIEnumerator
CICollectionDICollectData
Net Framework通過什麼與COM組件進行交互操作?(   C )
ASide By SideBWeb Service
CInteropDPInvoke
Net依靠以下哪一項技術解決COM存在的Dll Hell問題的?( A   )
ASide By SideBInterop
CPInvokeDCOM+
裝箱與拆箱操作是否是互逆的操作?(  B  )
A是B
以下哪個是可以變長的數組?(  D  )
AArray                      Bstring[]
Cstring[N]                  DArrayList
用戶自定義異常類需要從以下哪個類繼承(  A  )
AException                             BCustomException
CApplicationException                  DBaseException
以下代碼段中能否編譯通過?請給出理由
try
{
}
catch(FileNotFoundException e)
{
}
catch(Exception e)
{
}
catch(IOException e)
{
}
catch
{

對於一個實現了IDisposable接口的類以下哪些項可以執行與釋放或重置非托管資源相關的應用程序定義的任務?(多選) (   ABC     )
AClose                 BDisposeCFinalize
Dusing                 EQuit
Net依賴以下哪項技術實現跨語言互用性?(  C  )
ACLR               BCTS               CCLS                  DCTT
請問: String類與StringBuilder類有什麼區別?為什麼在Net類庫中要同時存在這個類?(簡答)
 如果要操作一個不斷增長的字符串盡量不用String類改用StringBuilder類兩個類的工作原理不同:String類是一種傳統的修改字符串的方式它確實可以完成把一個字符串添加到另一個字符串上的工作沒錯但是在NET框架下這個操作實在是劃不來因為系統先是把兩個字符串寫入內存接著刪除原來的String對象然後創建一個String對象並讀取內存中的數據賦給該對象這一來二去的耗了不少時間而使用SystemText命名空間下面的StringBuilder類就不是這樣了它提供的Append方法能夠在已有對象的原地進行字符串的修改簡單而且直接當然一般情況下覺察不到這二者效率的差異但如果你要對某個字符串進行大量的添加操作那麼StringBuilder類所耗費的時間和String類簡直不是一個數量級的 
以下哪個類是int的基類?(    )
AInt              BObject          CValueType            DInt 
 
 
C# 部分*
 
以下哪些可以作為接口成員?(多選) ( ABDE )
A方法B屬性C字段D事件E索引器
F構造函數G析構函數
以下關於ref和out的描述哪些項是正確的?(多選) (   ACD     )
A使用ref參數傳遞到ref參數的參數必須最先初始化
B使用out參數傳遞到out參數的參數必須最先初始化
C使用ref參數必須將參數作為ref參數顯式傳遞到方法
D使用out參數必須將參數作為out參數顯式傳遞到方法
訪問范圍限定於此程序或那些由它所屬的類派生的類型是對以下哪個成員可訪問性含義的正確描述?(  B   )
Apublic        Bprotected            Cinternal         Dprotected internal
class Class
{
    private static int count = ;
    static Class()
    {
        count++;
    }
    public Class()
    {
        count++;
    }
}
Class o = new Class();
Class o = new Class();
請問oCount的值是多少?(  C  )
A         B             C             D
abstract class BaseClass
{
    public virtual void MethodA()
    {
    }
    public virtual void MethodB()
    {
    }
}
class Class: BaseClass
{
    public void MethodA(string arg)
    {
    }
    public override void MethodB()
    {
    }
}
class Class: Class
{
    new public void MethodB()
    {
    }
}
class MainClass
{
    public static void Main(string[] args)
    {
        Class o = new Class();
        ConsoleWriteLine(oMethodA());
    }
}
請問oMethodA調用的是: (  A  )
ABaseClassMethodABClassMethodA
CClassMethodAD都不是
請敘述屬性與索引器的區別 
屬性 索引器    
  通過名稱標識 通過簽名標識    
  通過簡單名稱或成員訪問來訪問 通過元素訪問來訪問    
  可以為靜態成員或實例成員 必須為實例成員    
  屬性的   get   訪問器沒有參數 索引器的   get   訪問器具有與索引器相同的形參表    
  屬性的   set   訪問器包含隱式   value   參數 除了   value   參數外索引器的   set   訪問器還具有與索引器相同的形參表 
請敘述const與readonly的區別
每一個class至多只可以定義一個static構造函數並且不允許增加訪問級別關鍵字參數列必須為空
        為了不違背編碼規則通常把static數據成員聲明為private然後通過statci property提供讀寫訪問
        const 關鍵字用於修改字段或局部變量的聲明它指定字段或局部變量的值不能被修改常數聲明引入給定類型的一個或多個常數
        const數據成員的聲明式必須包含初值且初值必須是一個常量表達式因為它是在編譯時就需要完全評估
        const成員可以使用另一個const成員來初始化前提是兩者之間沒有循環依賴
        readonly在運行期評估賦值使我們得以在確保只讀訪問的前提下把object的初始化動作推遲到運行期進行
        readonly 關鍵字與 const 關鍵字不同 const 字段只能在該字段的聲明中初始化readonly 字段可以在聲明或構造函數中初始化因此根據所使用的構造函數readonly 字段可能具有不同的值另外const 字段是編譯時常數而 readonly 字段可用於運行時常數
  readonly 只能在聲明時或者構造函數裡面初始化並且不能在 static 修飾的構造函數裡面
您需要創建一個ASPNET應用程序公司考慮使用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>
 
您要創建一個顯示公司員工列表的應用程序您使用一個DataGrid控件顯示員工的列表您打算修改這個控件以便在這個Grid的Footer顯示員工合計數請問您應該怎麼做?(  C?  )
  A重寫OnPreRender事件當Grid的Footer行被創建時顯示合計數
  B重寫OnItemCreated事件當Grid的Footer行被創建時顯示合計數
  C重寫OnItemDataBound事件當Grid的Footer行被創建時顯示合計數
  D 重寫OnLayout事件當Grid的Footer行被創建時顯示合計數
您要創建ASPNET應用程序用於運行AllWin公司內部的Web站點這個應用程序包含了個頁面您想要配置這個應用程序以便當發生一個HTTP代碼錯誤時它可以顯示一個自定義的錯誤頁面給用戶您想要花最小的代價完成這些目標您應該怎麼做?(多選)(  CD   )
  A在這個應用程序的Globalasax文件中創建一個Application_Error過程去處理ASPNET代碼錯誤
  B在這個應用程序的nfig文件中創建一個applicationError節去處理ASPNET代碼錯誤
  C在這個應用程序的Globalasax文件中創建一個CustomErrors事件去處理HTTP錯誤
  D在這個應用程序的nfig文件中創建一個CustomErrors節去處理HTTP錯誤
  E在這個應用程序的每一頁中添加一個Page指示符去處理ASPNET 代碼錯誤
  F 在這個應用程序的每一頁中添加一個Page指示符去處理ASPNET HTTP錯誤
您的公司有一個DB Server名為AllWin其上裝了MS SQLSERVER 現在需要您寫一個數據庫連接字符串用以連接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
您為AllWin公司創建了一個ASPNET應用程序這個應用程序調用一個 Xml Web Service這個 Xml Web Service 將返回一個包含了公司雇員列表的DataSet對象請問您該如何在這個程序中使用這個 Xml Web Service?(  ?  )
  A引用對話框的Net標簽中選擇 SystemWebServicesdll
  BWeb引用對話框中輸入這個 XML Web service 的地址
  C在您的 Globalasaxcs 中添加一條 using 語句並指定這個 XML Web service 的地址
  D在您的 Globalasaxcs 中寫一個事件處理器導入這個 Xml Web Service 相應的 wsdl 和 disco 文件
您要創建一個ASPNET應用程序在DataGrid控件中顯示一個經過排序的列表產品數據被存放於一個名為PubBase的Microsoft SQL Server 數據庫每個產品的主鍵是ProductIDNumeric型並且每個產品有一個字母描述字段名為ProductName您使用一個SqlDataAdapter對象和一個SqlCommand對象通過調用一個存儲過程從數據庫中獲取產品數據您將SqlCommand對象的CommandType屬性設置為CommandTypeStoredProcedure並將它的CommandText屬性設置為procProductList您成功的獲取了一個DataTable對象其中是已經按ProductID降序排列的產品列表您打算顯示以相反的字母順序排列的ProductName請問該怎麼做? (  B  )
  A 將SqlCommand對象的CommandType屬性修改為CommandTypeText將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控件
C#代碼實現確保windows程序只有一個實例(instance)

        ///<summary>
        ///應用程序的主入口點
        ///</summary>
        [STAThread]
        staticvoid Main()
        {
            //防止程序多次運行
            if(!OneInstanceIsFirst(GetPayInfo))
            {
                MessageBoxShow (警告:程序正在運行中! 請不要重復打開程序!可在右下角系統欄找到!程序錯誤提示:MessageBoxButtonsOKMessageBoxIconStop);
                return;
            }
            ApplicationRun(new Form());
        }
        // ******************* 防止程序多次執行 **************************
        publicabstractclass OneInstance
        {
            ///<summary>
            ///判斷程序是否正在運行
            ///</summary>
            ///<param name=appId>程序名稱</param>
            ///<returns>如果程序是第一次運行返回True否則返回False</returns>
            publicstaticbool IsFirst(string appId)
            {
                bool ret=false;
                if(OpenMutex(xFappId)==IntPtrZero)
                {
                    CreateMutex(IntPtrZeroappId);
                    ret=true;
                }
                return ret;
            }  
            [DllImport(KerneldllCharSet=CharSetAuto)]
            privatestaticextern IntPtr OpenMutex(
                uint dwDesiredAccess // access
                int bInheritHandle    // inheritance option
                string lpName          // object name
                );
 
            [DllImport(KerneldllCharSet=CharSetAuto)]
            privatestaticextern IntPtr CreateMutex(
                IntPtr lpMutexAttributes // SD
                int bInitialOwner                       // initial owner
                string lpName                            // object name
                );
        } 
 

 
簡述privateprotectedpublicinternal 修飾符的訪問權限
private : 私有成員 在類的內部才可以訪問protected : 保護成員該類內部和繼承類中可以訪問public : 公共成員完全公開沒有訪問限制internal: 在同一命名空間內可以訪問
寫出一條Sql語句 取出表A中第到第記錄(SQLServer 以自動增長的ID作為主鍵  注意ID可能不是連續的
select top * from A where id not in (select top id from A)
: select top * from A where id > (select max(id) from (select top id from A )as A)
列舉ASPNET 頁面之間傳遞值的幾種方式
     使用QueryString?id=; response Redirect()
使用Session變量
使用ServerTransfer
請說明中常用的幾種頁面間傳遞參數的方法並說出他們的優缺點
session(viewstate) 簡單但易丟失
application 全局
cookie 簡單但可能不支持可能被偽造
input ttype=hidden 簡單可能被偽造
url參數簡單顯示於地址欄長度有限
數據庫穩定安全但性能相對弱
override與重載的區別
Override用來重寫父類的方法重載使用相同名的方法或操作符擁有不同類型的參數
的錯誤處理機制是什麼 <錯誤處理機制采用try->catch->finally結構,發生錯誤時,層層上拋,直到找到匹配的Catch為止。TW.wiNgWit.com
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. (C# or )中如何獲得當前窗體或控件的句柄,特別是控件本身的句柄(請列舉)。
this(C#) Me().
2(C# or )中如何用戶自定義消息,並在窗體中處理這些消息。
在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. (C# or )如何啟動另一個程序。process
4. (C# or )中如何取消一個窗體的關閉
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
}
5. (C# or )中,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接口只能用中
13.什麼是code-behind技術   aspx and cs
14.概述三層結構體系        web/business/dataaccess
如何實現MVC模式,舉例說明! web/business/dataaccess
2.什麼是中的用戶控件
答:用戶控件就是.ascx擴展名的東西喽,可以拖到不同的頁面中調用,以節省代碼.比如登陸可能在多個頁面上有,就可以做成用戶控件,但是有一個問題就是用戶控件拖到不同級別的目錄下後裡面的圖片等的相對路徑會變得不准確,需要自已寫方法調整.
3.什麼叫應用程序域?什麼是受管制的代碼?什麼是強類型系統?什麼是裝箱和拆箱?什麼是重載?CTS、CLS和CLR分別作何解釋?
答:裝箱就是把值類型轉成引用類型,從MS IL角度看好像是boxing,沒記錯的話是把值從堆棧轉到堆中.拆箱相反,重載就是指一個方法名同,參數個數不同,返回值可以相同的方法.CLR是通用語言運行時,其它的不清楚.
4.列舉一下你所了解的XML技術及其應用
答:XML可是好東西,保存配置,站與站之間的交流,WEB SERVICE都要用它.
5.值類型和引用類型的區別?寫出C#的樣例代碼。
答:結構是值類型,類是引用類型,所以傳結構就是值類型的應用啦,傳對象或類就是引用類型的,這個不用多寫了吧.
中常用的對象有哪些?分別描述一下。
答:connection command sqladapter dataset datatable dataview等等.寫不完了.
7.如何理解委托?
答:據說相當於函數指針,定義了委托就可以在不調用原方法名稱的情況下調用那個方法.
msdn2005中是這樣解釋的:
委托具有以下特點:
委托類似於 C++ 函數指針,但它是類型安全的。
委托允許將方法作為參數進行傳遞。
委托可用於定義回調方法。
委托可以鏈接在一起;例如,可以對一個事件調用多個方法。
方法不需要與委托簽名精確匹配。有關更多信息,請參見協變和逆變。
C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作為參數傳遞,以代替單獨定義的方法。
8.C#中的接口和類有什麼異同。
答:接口是負責功能的定義,項目中通過接口來規范類,操作類以及抽象類的概念!
而類是負責功能的具體實現!
在類中也有抽象類的定義,抽象類與接口的區別在於:
抽象類是一個不完全的類,類裡面有抽象的方法,屬性,也可以有具體的方法和屬性,需要進一步的專業化。
但接口是一個行為的規范,裡面的所有東西都是抽象的!
一個類只可以繼承一個基類也就是父類,但可以實現多個接口
9.。net中讀寫數據庫需要用到哪些類?他們的作用
答:這個類自已可以寫的啊,你是指基類嗎?那configuration,sqlconnection,sqlcommand等都要用到.
10.UDP連接和TCP連接的異同。
答:前者只管傳,不管數據到不到,無須建立連接.後者保證傳輸的數據准確,須要連結.
的身份驗證方式有哪些?分別是什麼原理?
答:form認證,windows集成認證等,原理不清楚.
13.什麼是code-Behind技術。
答:代碼分離,這是個明智的東西,像ASP這樣混成一堆很不爽.或者可以理解成HTML代碼寫在前台,C#代碼寫在後台.當然前台也有腳本,類的調用等,其實寫在一起也是可以的.
中讀寫XML的類都歸屬於哪些命名空間?
答:System.Xml
16.解釋一下UDDI、WSDL的意義及其作用。
答:
17.什麼是SOAP,有哪些應用。
答:SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分布式的環境中交換信息並執行遠程過程調用的協議,是一個基於XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最常用的還是HTTP協議),可以允許任何類型的對象或代碼,在任何平台上,以任何一直語言相互通信。這種相互通信采用的是XML格式的消息,具體請看:
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中以什麼方式進行數據驗證
       中有非空驗證,比較驗證,取值范圍驗證,正則表達式驗證及客戶自定義驗證五大控件,另還有一個集中驗證信息處理控件
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.  請解釋nfig文件中的重要節點
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進行同步通訊編程的詳細步驟
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      
 5SQLSERVER服務器中,給定表table1   中有兩個字段IDLastUpdateDateID表示更新的事務號,LastUpdateDate表示更新時的服務器時間,請使用一句SQL語句獲得最後更新的事務號。(10)  
  select   top   ID   from   table1   order   by   LastUpdateData   desc     
8、簡要談一下您對微軟.NET   構架下remotingwebservice兩項技術的理解以及實際中的應用。(10)  
    中用來跨越machine,   process,   appdomain   進行方法調用的技術,對於三成結構的程序,就可以使用remoting技術來構建.它是分布應用的基礎技術.相當於以前的DCOM  Web   Service是一種構建應用程序的普通模型,並能在所有支持internet網通訊的操作系統上實施。Web   Service令基於組件的開發和web的結合達到最佳,基於組件的對象模型  
9.什麼叫做SQL注入,如何防止?請舉例說明。
利用sql關鍵字對網站進行攻擊。過濾關鍵字'等
所謂SQL注入(SQL Injection),就是利用程序員對用戶輸入數據的合法性檢測不嚴或不檢測的特點,故意從客戶端提交特殊的代碼,從而收集程序及服務器的信息,從而獲取想得到的資料。
?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)、結構不能使用初始值設置域值。


From:http://tw.wingwit.com/Article/program/net/201311/12908.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.