C#是微軟公司釋出的一種面向物件的、運行於 Framework之上的高階程式設計語言。下面就由本站小編為大家介紹一下c#經典筆試題的文章,歡迎閱讀。
c#經典筆試題篇1
1. c#中錯誤處理機制有哪些
CLR提供的結構化錯誤處理機制,用lly 捕獲
2. public/protect/private/internal修飾符的區別
public:任何類和成員都可以訪問
protect:該類和派生類能訪問
private:只能該類訪問
internal:只能在包含它的程式集中訪問
3. 大量資料(如3000萬條資料)併發處理時,有哪幾種機制
儲存過程或事務.取得最大標識的時候同時更新,注意主鍵不是自增量方式.這種方法併發的時候是不會重複主鍵的,
取得最大標識要有一個儲存過程來獲取.
4. String/StringBuilder的異同
string是一個不可變的資料型別,一旦對字串物件進行了初始化,該字串物件就不能改變了。修改字串內容的方法
和運算子實際上是建立一個新的字串.
stringbuilder分配好記憶體,對字串的修改就在賦予stringbuilder例項的儲存單元中進行.
舉例:
string的確是不能修改的:
string str = "a";
str = "b"//str是被賦值了"b"沒錯,但是str裡面原來的string值"a"並沒有被修改。
string str = "a";
string str1 = str;
str += "b";//此時str = "ab",str1 = "a";
StringBuilder str = new StringBuilder( "a" );
StringBuilder str1 = str;
nd( "b" );
ring和ring都是"ab"。
5. 解釋string str=null/string str=""
str=null,宣告而不分記憶體空間,str=""宣告而分記憶體空間
6. 什麼是單例模式,寫個運用單例模式的類
Singleton模式包含的角色只有一個,就是Singleton。Singleton擁有一個私有建構函式,確保使用者無法通過new直接
例項它
// 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 = ance;
Singleton s2 = ance;
if( s1 == s2 )
eLine( "The same instance" );
}
}
7. 頁面間傳遞有哪幾種方式
QueryString, rect, session, sfer
8. 解釋過載/覆蓋
9. Web Services的含義/UDDI的含義
Web服務是利用SOAP在HTTP上執行遠端方法呼叫的一種新方法。
UDDI的含義:統一描述發現和整合(UDDI)提供一種釋出和查詢服務描述的方法。
10.虛擬函式/抽象函式各自的定義
虛擬函式:由virtual宣告,它允許在派生類中被重寫,要重寫方法,必須先聲名為virtual
public class myclass
{
public virtual int myint
{
函式體;
}
}
class myclass1:myclass
{
public override int myint
{
函式體1;
}
}
抽象類、抽象函式:由abstract宣告,在抽象類中可以定義抽象方法,抽象方法基本沒有執行程式碼,派生類必須重寫它,提供其執行程式碼
public abstract class myclass
{
public abstract int myint;
}
public class myclass1:myclass
{
public override int myint
{
函式體;
}
}
c#經典筆試題篇2
1.介面和類的異同
介面類:由interface宣告,是特殊的抽象類,是方法、屬性、事件和索引符的組合,沒有欄位,其成員無執行方式,無建構函式,不允許進行運算子過載,介面和它的成員沒有任何訪問修飾符,它總是公共的,不能宣告為虛擬或靜態,繼承自介面的派生類必須實現介面中的所有方法
interface Imyinterface
{
void myfunction;
string name
{
get;
set;
}
}
class myclass:Imyinterface
{
void myfunction
{
函式體;
}
string name
{
get
{
return name;
}
set
{
name=value;
}
}
}
介面是負責功能的定義,專案中通過介面來規範類,操作類以及抽象類的概念!
而類是負責功能的具體實現!
在類中也有抽象類的定義,抽象類與介面的區別在於:
抽象類是一個不完全的類,類裡面有抽象的方法,屬性,也可以有具體的方法和屬性,需要進一步的專業化。
但介面是一個行為的規範,裡面的所有東西都是抽象的!
一個類只可以繼承一個基類也就是父類,但可以實現多個介面
erty/assembly區別
Reader/DataSet區別
dataset表示一個數據集,是資料在記憶體中的快取。 可以包括多個表
DatSet 連線資料庫時是非面向連線的。把表全部讀到Sql中的緩衝池,並斷開於資料庫的連線
datareader 連線資料庫時是面向連線的。讀表時,只能向前讀取,讀完資料後有使用者決定是否斷開連線。
g/new各自的意義
using引入名稱空間或者說使用非託管資源new 新建例項或隱藏父類方法
5.一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少, 用遞迴演算法實現
public class MainClass
{
public static void Main
{
eLine(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#中的委託是什麼?事件是不是一種委託?
委託可以把一個方法作為引數代入另一個方法。
委託可以理解為指向一個函式的引用。
是,是一種特殊的委託
ride與過載的區別
過載是方法的名稱相同。引數或引數型別不同,進行多次過載以適應不同的需要
Override 是進行基類中函式的重寫
8.如果在一個B/S結構的系統中需要傳遞變數值,但是又不能使用Session、Cookie、Application,您有幾種方法進行處理?
QueryString、FormsAuthentication,sfer
9.請程式設計遍歷頁面上所有TextBox控制元件並給它賦值為y?
foreach (rol control in rols)
{
if (control is Box)
{
Box tb = (Box)control ;
= y ;
}
}
foreach (rol rols)
{
if (controlis Box)
{
Box tb = controlas Box ;
if(tb!=null)
{
= y ;
}
}
}
10.請程式設計實現一個氣泡排序演算法?
int array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < th - 1 ; i++)
{
for (int j = i + 1 ; j < th ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
c#經典筆試題篇3
1.描述一下C#中索引器的實現過程,是否只能根據數字進行索引?
可以用任意型別
C#中的索引器通常用於索引陣列,樓上的THIS就是索引器了。
索引器不單能索引數字(陣列下標),還能索引一些HASHMAP的字串,所以,通常來說,C#中類的索引器通常只有一個,就是THIS,但也可以有無數個,只要你的引數列表不同就可以了
索引器和返回值無關
class A
{
int i=new int[10];
publib int this[int v]
{
return i[v];
}
2.求以下表達式的值,寫出您想到的一種或幾種實現方法: 1-2+3-4+……+m
if(m%2 == 1){
S = (m + 1) / 2;
} else {
S = -m / 2;
}
int Num = ring ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}
else
{
Sum = Sum - I ;
}
}
eLine(ring);
Line ;
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
{
eLine("x={0},y={1}",x,y);
}
}
當使用new B建立B的例項時,產生什麼輸出? X=1,Y=0;x= 1 y = -1
4..什麼叫應用程式域?
應用程式域可以理解為一種輕量級程序。起到安全的作用。佔用資源小。
、CLS、CLR分別作何解釋?
CTS:通用語言系統。CLS:通用語言規範。CLR:公共語言執行庫。
6.什麼是裝箱和拆箱?
從值型別介面轉換到引用型別裝箱。從引用型別轉換到值型別拆箱。
7.什麼是受管制的程式碼?
unsafe:非託管程式碼。不經過CLR執行。
8.什麼是強型別系統?
RTTI:型別識別系統。
9.在中,配件的意思是?
程式集。(中間語言,源資料,資源,裝配清單)
10.常用的呼叫WebService的方法有哪些?
1.使用命令列工具。
2.使用中的Add Web Reference選單選項