41. 在下面的例子裏
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,當調用父類構造方法時,在父類構造方法中將調用PrintFields()方法,而該方法爲虛方法且被子類重寫,由於目前爲子類對象,因此,調用子類重寫後的PrintFields()方法,故輸出:X=1,Y=0。
42. 求以下表達式的值,寫出您想到的一種或幾種實現方法: 1-2+3-4+……+m
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 -=i ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
43. 描述一下C#中索引器的實現過程,是否只能根據數字進行索引?
不是。可以用任意類型。
44. NET中讀寫XML的類都歸屬於哪些命名空間?
答:System.Xml
45. CLR與IL分別是什麼含義?
CLR:Common Language Runtime,公共語言運行時,是一套完整的、高級的虛擬機,它被設計爲用來支持不同的編程語言,並支持它們之間的互操作。
IL,中間語言,也稱MSIL,微軟中間語言,或CIL,通用中間語言;所有.NET源代碼在進行編譯時都被編譯成IL,IL獨立於CPU的指令集,與平臺無關。在應用程序運行時被即時(Just-In-Time,JIT)編譯器處理成爲機器碼,被解釋及執行。
46. 進程與程序的區別?
(1)進程是動態的,而程序是靜態的。
(2)進程有一定的生命期,而程序是指令的集合,本身無“運動”的含義。沒有建立進程的程序不能作爲1個獨立單位得到操作系統的認可。
(3)1個程序可以對應多個進程,但1個進程只能對應1個程序。進程和程序的關係猶如演出和劇本的關係。
47. 私有程序集與共享程序集有什麼區別?
一個私有程序集通常爲單個應用程序所使用,並且存儲於這個應用程序所在的目錄之中,或此目錄下面的一個子目錄中。
共享程序集通常存儲在全局程序集緩存(Global Assembly Cache)之中,這是一個由.NET運行時所維護的程序集倉庫。共享程序集通常是對許多應用程序都有用的代碼庫,比如.NET Framework類。
48. New有幾種用法
在 C# 中,new 關鍵字可用作運算符、修飾符或約束。
1)new 運算符:用於創建對象和調用構造函數。這種大家都比較熟悉,沒什麼好說的了。
2)new 修飾符:在用作修飾符時,new 關鍵字可以顯式隱藏從基類繼承的成員。
3)new 約束:用於在泛型聲明中約束可能用作類型參數的參數的類型。
49. 接口是否可繼承接口?抽象類是否可實現接口?抽象類是否可繼承類?
在C#中,接口可以繼承接口,但不是實現接口,因爲,接口中不能存在實現的成員。
抽象類與普通類無差異,只是不能被實例化而已,因此,抽象可以實現接口,也可以繼承類,但抽象類一般作爲父類使用。
50. 什麼是類和對象以及關係?
對象:一種具有狀態(屬性)和行爲(方法)的編程實體,用於描述現實世界的某個具體事物。
類:具用一系列對象共同特徵和行爲的通用類型。
對象和類的關係:
類是對象的抽象,而對象是類的具體實例。類是抽象的,不佔用內存,而對象是具體的,佔用存儲空間。類與對象的關係就如模具和鑄件的關係,類的實例化結果就是對象,而對一類對象的抽象就是類,類描述了一組有相同屬性和相同方法的對象。