亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場 > 筆試題 > c#經(jīng)典筆試題

      c#經(jīng)典筆試題

      時(shí)間: 護(hù)托1061 分享

      c#經(jīng)典筆試題

        C#是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于.NET Framework之上的高級(jí)程序設(shè)計(jì)語言。下面就由學(xué)習(xí)啦小編為大家介紹一下c#經(jīng)典筆試題的文章,歡迎閱讀。

        c#經(jīng)典筆試題篇1

        1. c#中錯(cuò)誤處理機(jī)制有哪些

        CLR提供的結(jié)構(gòu)化錯(cuò)誤處理機(jī)制,用try..catch..finally 捕獲

        2. public/protect/private/internal修飾符的區(qū)別

        public:任何類和成員都可以訪問

        protect:該類和派生類能訪問

        private:只能該類訪問

        internal:只能在包含它的程序集中訪問

        3. 大量數(shù)據(jù)(如3000萬條數(shù)據(jù))并發(fā)處理時(shí),有哪幾種機(jī)制

        存儲(chǔ)過程或事務(wù).取得最大標(biāo)識(shí)的時(shí)候同時(shí)更新,注意主鍵不是自增量方式.這種方法并發(fā)的時(shí)候是不會(huì)重復(fù)主鍵的,

        取得最大標(biāo)識(shí)要有一個(gè)存儲(chǔ)過程來獲取.

        4. String/StringBuilder的異同

        string是一個(gè)不可變的數(shù)據(jù)類型,一旦對字符串對象進(jìn)行了初始化,該字符串對象就不能改變了。修改字符串內(nèi)容的方法

        和運(yùn)算符實(shí)際上是創(chuàng)建一個(gè)新的字符串.

        stringbuilder分配好內(nèi)存,對字符串的修改就在賦予stringbuilder實(shí)例的存儲(chǔ)單元中進(jìn)行.

        舉例:

        string的確是不能修改的:

        string str = "a";

        str = "b"//str是被賦值了"b"沒錯(cuò),但是str里面原來的string值"a"并沒有被修改。

        string str = "a";

        string str1 = str;

        str += "b";//此時(shí)str = "ab",str1 = "a";

        StringBuilder str = new StringBuilder( "a" );

        StringBuilder str1 = str;

        str.Append( "b" );

        str.ToString()和str1.ToString()都是"ab"。

        5. 解釋string str=null/string str=""

        str=null,聲明而不分內(nèi)存空間,str=""聲明而分內(nèi)存空間

        6. 什么是單例模式,寫個(gè)運(yùn)用單例模式的類

        Singleton模式包含的角色只有一個(gè),就是Singleton。Singleton擁有一個(gè)私有構(gòu)造函數(shù),確保用戶無法通過new直接

        實(shí)例它

        // Singleton pattern -- Structural example

        using System;

        // "Singleton"

        class Singleton

        {

        // Fields

        private static Singleton instance;

        // Constructor

        protected Singleton() {}

        // Methods

        public static Singleton Instance()

        {

        // Uses "Lazy initialization"

        if( instance == null )

        instance = new Singleton();

        return instance;

        }

        }

        /**////

        /// Client test

        ///

        public class Client

        {

        public static void Main()

        {

        // Constructor is protected -- cannot use new

        Singleton s1 = Singleton.Instance();

        Singleton s2 = Singleton.Instance();

        if( s1 == s2 )

        Console.WriteLine( "The same instance" );

        }

        }

        7. ASP.NET頁面間傳遞有哪幾種方式

        QueryString, response.Redirect(), session, server.Transfer

        8. 解釋重載/覆蓋

        9. Web Services的含義/UDDI的含義

        Web服務(wù)是利用SOAP在HTTP上執(zhí)行遠(yuǎn)程方法調(diào)用的一種新方法。

        UDDI的含義:統(tǒng)一描述發(fā)現(xiàn)和集成(UDDI)提供一種發(fā)布和查找服務(wù)描述的方法。

        10.虛函數(shù)/抽象函數(shù)各自的定義

        虛函數(shù):由virtual聲明,它允許在派生類中被重寫,要重寫方法,必須先聲名為virtual

        public class myclass

        {

        public virtual int myint()

        {

        函數(shù)體;

        }

        }

        class myclass1:myclass

        {

        public override int myint()

        {

        函數(shù)體1;

        }

        }

        抽象類、抽象函數(shù):由abstract聲明,在抽象類中可以定義抽象方法,抽象方法基本沒有執(zhí)行代碼,派生類必須重寫它,提供其執(zhí)行代碼

        public abstract class myclass

        {

        public abstract int myint();

        }

        public class myclass1:myclass

        {

        public override int myint()

        {

        函數(shù)體;

        }

        }

        c#經(jīng)典筆試題篇2

        1.接口和類的異同

        接口類:由interface聲明,是特殊的抽象類,是方法、屬性、事件和索引符的組合,沒有字段,其成員無執(zhí)行方式,無構(gòu)造函數(shù),不允許進(jìn)行運(yùn)算符重載,接口和它的成員沒有任何訪問修飾符,它總是公共的,不能聲明為虛擬或靜態(tài),繼承自接口的派生類必須實(shí)現(xiàn)接口中的所有方法

        interface Imyinterface

        {

        void myfunction();

        string name

        {

        get;

        set;

        }

        }

        class myclass:Imyinterface

        {

        void myfunction()

        {

        函數(shù)體;

        }

        string name

        {

        get

        {

        return name;

        }

        set

        {

        name=value;

        }

        }

        }

        接口是負(fù)責(zé)功能的定義,項(xiàng)目中通過接口來規(guī)范類,操作類以及抽象類的概念!

        而類是負(fù)責(zé)功能的具體實(shí)現(xiàn)!

        在類中也有抽象類的定義,抽象類與接口的區(qū)別在于:

        抽象類是一個(gè)不完全的類,類里面有抽象的方法,屬性,也可以有具體的方法和屬性,需要進(jìn)一步的專業(yè)化。

        但接口是一個(gè)行為的規(guī)范,里面的所有東西都是抽象的!

        一個(gè)類只可以繼承一個(gè)基類也就是父類,但可以實(shí)現(xiàn)多個(gè)接口

        2.property/assembly區(qū)別

        3.DataReader/DataSet區(qū)別

        dataset表示一個(gè)數(shù)據(jù)集,是數(shù)據(jù)在內(nèi)存中的緩存。 可以包括多個(gè)表

        DatSet 連接數(shù)據(jù)庫時(shí)是非面向連接的。把表全部讀到Sql中的緩沖池,并斷開于數(shù)據(jù)庫的連接

        datareader 連接數(shù)據(jù)庫時(shí)是面向連接的。讀表時(shí),只能向前讀取,讀完數(shù)據(jù)后有用戶決定是否斷開連接。

        4.using/new各自的意義

        using引入名稱空間或者說使用非托管資源new 新建實(shí)例或隱藏父類方法

        5.一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數(shù)是多少, 用遞歸算法實(shí)現(xiàn)

        public class MainClass

        {

        public static void Main()

        {

        Console.WriteLine(Foo(30));

        }

        public static int Foo(int i)

        {

        if (i <= 0)

        return 0;

        else if(i > 0 && i <= 2)

        return 1;

        else return Foo(i -1) + Foo(i - 2);

        }

        }

        6.C#中的委托是什么?事件是不是一種委托?

        委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。

        委托可以理解為指向一個(gè)函數(shù)的引用。

        是,是一種特殊的委托

        7.override與重載的區(qū)別

        重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以適應(yīng)不同的需要

        Override 是進(jìn)行基類中函數(shù)的重寫

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

        QueryString、FormsAuthentication,Server.Transfer

        9.請編程遍歷頁面上所有TextBox控件并給它賦值為string.Empty?

        foreach (System.Windows.Forms.Control control in this.Controls)

        {

        if (control is System.Windows.Forms.TextBox)

        {

        System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;

        tb.Text = String.Empty ;

        }

        }

        foreach (System.Windows.Forms.Control controlinthis.Controls)

        {

        if (controlis System.Windows.Forms.TextBox)

        {

        System.Windows.Forms.TextBox tb = controlas System.Windows.Forms.TextBox ;

        if(tb!=null)

        {

        tb.Text = String.Empty ;

        }

        }

        }

        10.請編程實(shí)現(xiàn)一個(gè)冒泡排序算法?

        int [] array = new int [*] ;

        int temp = 0 ;

        for (int i = 0 ; i < array.Length - 1 ; i++)

        {

        for (int j = i + 1 ; j < array.Length ; j++)

        {

        if (array[j] < array[i])

        {

        temp = array[i] ;

        array[i] = array[j] ;

        array[j] = temp ;

        }

        }

        }

        c#經(jīng)典筆試題篇3

        1.描述一下C#中索引器的實(shí)現(xiàn)過程,是否只能根據(jù)數(shù)字進(jìn)行索引?

        可以用任意類型

        C#中的索引器通常用于索引數(shù)組,樓上的THIS就是索引器了。

        索引器不單能索引數(shù)字(數(shù)組下標(biāo)),還能索引一些HASHMAP的字符串,所以,通常來說,C#中類的索引器通常只有一個(gè),就是THIS,但也可以有無數(shù)個(gè),只要你的參數(shù)列表不同就可以了

        索引器和返回值無關(guān)

        class A

        {

        int[] i=new int[10];

        publib int this[int v]

        {

        return i[v];

        }

        2.求以下表達(dá)式的值,寫出您想到的一種或幾種實(shí)現(xiàn)方法: 1-2+3-4+……+m

        if(m%2 == 1){

        S = (m + 1) / 2;

        } else {

        S = -m / 2;

        }

        int Num = this.TextBox1.Text.ToString() ;

        int Sum = 0 ;

        for (int i = 0 ; i < Num + 1 ; i++)

        {

        if((i%2) == 1)

        {

        Sum += i ;

        }

        else

        {

        Sum = Sum - I ;

        }

        }

        System.Console.WriteLine(Sum.ToString());

        System.Console.ReadLine() ;

        3.

        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);

        }

        }

        當(dāng)使用new B()創(chuàng)建B的實(shí)例時(shí),產(chǎn)生什么輸出? X=1,Y=0;x= 1 y = -1

        4..什么叫應(yīng)用程序域?

        應(yīng)用程序域可以理解為一種輕量級(jí)進(jìn)程。起到安全的作用。占用資源小。

        5.CTS、CLS、CLR分別作何解釋?

        CTS:通用語言系統(tǒng)。CLS:通用語言規(guī)范。CLR:公共語言運(yùn)行庫。

        6.什么是裝箱和拆箱?

        從值類型接口轉(zhuǎn)換到引用類型裝箱。從引用類型轉(zhuǎn)換到值類型拆箱。

        7.什么是受管制的代碼?

        unsafe:非托管代碼。不經(jīng)過CLR運(yùn)行。

        8.什么是強(qiáng)類型系統(tǒng)?

        RTTI:類型識(shí)別系統(tǒng)。

        9.在.net中,配件的意思是?

        程序集。(中間語言,源數(shù)據(jù),資源,裝配清單)

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

        1.使用WSDL.exe命令行工具。

        2.使用VS.Net中的Add Web Reference菜單選項(xiàng)

      3169989