常規技術面試題(.NET)41-50

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. 什麼是類和對象以及關係?

對象:一種具有狀態(屬性)和行爲(方法)的編程實體,用於描述現實世界的某個具體事物。
類:具用一系列對象共同特徵和行爲的通用類型。

對象和類的關係:

類是對象的抽象,而對象是類的具體實例。類是抽象的,不佔用內存,而對象是具體的,佔用存儲空間。類與對象的關係就如模具和鑄件的關係,類的實例化結果就是對象,而對一類對象的抽象就是類,類描述了一組有相同屬性和相同方法的對象。

小劇場:在困難前面不後退。Don’t step back in front of difficulties.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章