日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

在 C# 中,new 关键字可用作运算符、修饰符或约束。

發布時間:2024/10/8 C# 127 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 C# 中,new 关键字可用作运算符、修饰符或约束。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(1)new 運算符 用于創建對象和調用構造函數。

(2)new 修飾符 用于隱藏基類成員的繼承成員。

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

??

new 運算符

  1.用于創建對象和調用構造函數

  例:Class_Test MyClass = new Class_Test();

  2.也用于為值類型調用默認的構造函數

  例:int myInt = new int();

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

  3.不能重載 new 運算符。

  4.如果 new 運算符分配內存失敗,則它將引發 OutOfMemoryException 異常。

new 修飾符

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

  請看下面的類:

  public class MyClass

  {

    public int x;

    public void Invoke() {}
  }
  在派生類中用 Invoke 名稱聲明成員會隱藏基類中的 Invoke 方法,即:

  public class MyDerivedC : MyClass

  {

    new public void Invoke() {}

  }
  但是,因為字段 x 不是通過類似名隱藏的,所以不會影響該字段。

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

  1.引入類或結構中的常數、指定、屬性或類型隱藏具有相同名稱的所有基類成員。

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

  3.引入類或結構中的索引器將隱藏具有相同名稱的所有基類索引器。

  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

new 約束

  new 約束指定泛型類聲明中的任何類型參數都必須有公共的無參數構造函數。當泛型類創建類型的新實例時,將此約束應用于類型參數,如下面的示例所示:
  class ItemFactory<T> where T : new()
  {
    public T GetNewItem()
    {
      return new T();
    }
  }

轉載于:https://www.cnblogs.com/deeryao/archive/2011/06/18/2084099.html

總結

以上是生活随笔為你收集整理的在 C# 中,new 关键字可用作运算符、修饰符或约束。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。