欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中new的幾種用法詳解

 更新時間:2017年02月28日 11:24:33   作者:李斌1  
本文主要介紹了C#中new的幾種用法,具有很好的參考價值,下面跟著小編一起來看下吧

在 C# 中,new 關(guān)鍵字可用作運算符、修飾符或約束。

new 運算符

用于創(chuàng)建對象和調(diào)用構(gòu)造函數(shù)。

new 修飾符

用于向基類成員隱藏繼承成員。

new 約束

用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。

new 修飾符(C# 參考)

在用作修飾符時,new 關(guān)鍵字可以顯式隱藏從基類繼承的成員。隱藏繼承的成員意味著該成員的派生版本將替換基類版本。在不使用 new 修飾符的情況下隱藏成員是允許的,但會生成警告。使用 new 顯式隱藏成員會取消此警告,并記錄代之以派生版本這一事實。

若要隱藏繼承的成員,請使用相同名稱在派生類中聲明該成員,并使用 new 修飾符修飾該成員

new 運算符(C# 參考)

1.用于創(chuàng)建對象和調(diào)用構(gòu)造函數(shù)。例如:

Class1 o = new Class1();

2.也用于為值類型調(diào)用默認的構(gòu)造函數(shù)

 例:int myInt = new int();

 myInt 初始化為 0,它是 int 類型的默認值。該語句的效果等同于:int myInt = 0;

3.不能重載 new 運算符。

4.如果 new 運算符分配內(nèi)存失敗,則它將引發(fā) OutOfMemoryException 異常

new 約束(C# 參考)

new 約束指定泛型類聲明中的任何類型參數(shù)都必須有公共的無參數(shù)構(gòu)造函數(shù)。當(dāng)泛型類創(chuàng)建類型的新實例時,將此約束應(yīng)用于類型參數(shù),如下面的示例所示:

class ItemFactory<T> where T : new() 
{ 
public T GetNewItem() 
{ 
return new T(); 
} 
}

通過繼承隱藏名稱采用下列形式之一:

  1.引入類或結(jié)構(gòu)中的常數(shù)、指定、屬性或類型隱藏具有相同名稱的所有基類成員。

  2.引入類或結(jié)構(gòu)中的方法隱藏基類中具有相同名稱的屬性、字段和類型。同時也隱藏具有相同簽名的所有基類方法。

  3.引入類或結(jié)構(gòu)中的索引器將隱藏具有相同名稱的所有基類索引器。

  4.在同一成員上同時使用 new 和 override 是錯誤的。

  注意:在不隱藏繼承成員的聲明中使用 new 修飾符將生成警告。

 示例

  在該例中,嵌套類 MyClass 隱藏了基類中具有相同名稱的類。該例不僅說明了如何使用完全限定名訪問隱藏類成員,同時也說明了如何使用 new 修飾符消除警告消息。

   using System; 
   public class MyBaseC 
   { 
   public class MyClass 
   { 
   public int x = 200; 
   public int y; 
   } 
   } 
   public class MyDerivedC : MyBaseC 
   { 
   new public class MyClass // nested type hiding the base type members 
   { 
   public int x = 100; 
   public int y; 
   public int z; 
   } 
   public static void Main() 
  { 
   // Creating object from the overlapping class: 
   MyClass S1 = new MyClass(); 
   // Creating object from the hidden class: 
  MyBaseC.MyClass S2 = new MyBaseC.MyClass(); 
   Console.WriteLine(S1.x); 
   Console.WriteLine(S2.x); 
   } 
   } 

  輸出
  100
  200

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • C#同步網(wǎng)絡(luò)時間的方法實例詳解

    C#同步網(wǎng)絡(luò)時間的方法實例詳解

    這篇文章主要介紹了C#同步網(wǎng)絡(luò)時間的方法,以實例形式較為詳細的分析了C#獲取網(wǎng)絡(luò)時間與同步本機系統(tǒng)時間的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • C#利用GDI繪制常見圖形和文字

    C#利用GDI繪制常見圖形和文字

    本文主要介紹了C#中利用GDI來繪制圖形和文字的方法,并提供的簡單的示例供大家參考學(xué)習(xí),希望能夠?qū)Υ蠹矣兴鶐椭?/div> 2016-03-03
  • C#實現(xiàn)BBcode轉(zhuǎn)為Markdown的方法

    C#實現(xiàn)BBcode轉(zhuǎn)為Markdown的方法

    這篇文章主要給大家介紹了關(guān)于C#實現(xiàn)BBcode轉(zhuǎn)Markdown的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • 使用設(shè)計模式中的工廠方法模式進行C#編程的示例講解

    使用設(shè)計模式中的工廠方法模式進行C#編程的示例講解

    這篇文章主要介紹了使用設(shè)計模式中的工廠方法模式進行C#編程的示例講解,工廠方法模式可以看作是對簡單工廠模式的進一步擴展,需要的朋友可以參考下
    2016-02-02
  • c# EnumHelper枚舉常用操作類

    c# EnumHelper枚舉常用操作類

    在項目中需要把枚舉填充到下拉框中,所以使用統(tǒng)一的方法實現(xiàn),測試代碼如下,需要的朋友可以參考下
    2016-11-11
  • Visual Studio關(guān)于C#項目Dll的引用多種方式(圖文詳解)

    Visual Studio關(guān)于C#項目Dll的引用多種方式(圖文詳解)

    本文通過圖文并茂的形式給大家展示Visual Studio關(guān)于C#項目Dll的引用幾種方式 ,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • c#關(guān)于非托管內(nèi)存的釋放問題及解讀

    c#關(guān)于非托管內(nèi)存的釋放問題及解讀

    這篇文章主要介紹了c#關(guān)于非托管內(nèi)存的釋放問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • winform實現(xiàn)拖動文件到窗體上的方法

    winform實現(xiàn)拖動文件到窗體上的方法

    這篇文章主要介紹了winform實現(xiàn)拖動文件到窗體上的方法,以實例分析了C#中WinForm操作窗體及文件的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • C#/.net程序調(diào)用Python的教程分享

    C#/.net程序調(diào)用Python的教程分享

    C#的優(yōu)勢在于window下的開發(fā),不僅功能強大而且開發(fā)周期短。而python則有眾多的第三方庫,可以避免自己造輪子,利用C#來做界面,而具體實現(xiàn)使用python來實現(xiàn)可以大大提高開發(fā)效率。本文介紹如何使用pythonnet來執(zhí)行python腳本,希望對大家有所幫助
    2023-03-03
  • C# 中閉包(Closure)詳解

    C# 中閉包(Closure)詳解

    這篇文章主要介紹了C# 中閉包(Closure)詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06

最新評論