この記事では主に C# での new の使い方とオーバーライドとの違いを紹介しますので、必要な方は参考にしてみてください
C# で new を使用するには 3 つの方法があります:
(1) new は 演算子です。 、オブジェクトの作成とコンストラクターの呼び出しに使用されます。たとえば、Class1=new Class1(); のように、値の型のデフォルトのコンストラクターを呼び出すこともできます。このとき、 a=0.
(2) new は基本Inheritedメンバーをクラスメンバーから隠すために使用される修飾子。オーバーライドでは、蓄積されたメンバーの継承されたメンバーを非表示にすることはできません。例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace A { class Program { abstract public class Test { public virtual void Prinf() { Console.WriteLine("Abstract Printf..."); } } public class Class1 : Test { public override void Prinf() { Console.WriteLine("Class One Override Printf..."); } } public class Class2 : Test { public new void Prinf() { Console.WriteLine("Class Two New Printf..."); } } static void Main(string[] args) { Class1 cls1 = new Class1(); Class2 cls2 = new Class2(); cls1.Prinf(); cls2.Prinf(); ((Test)cls1).Prinf(); ((Test)cls2).Prinf(); Console.ReadLine(); } } }
実行結果は、新しい修飾子がオーバーライドされたメソッドを非表示にし、派生オブジェクトを基本クラス オブジェクトに変換することによって基本クラス メソッドを呼び出すことを示します。オーバーライドはメソッドを完全に書き換えます。基底クラスのオブジェクトに変換された場合でも、派生クラスのオーバーライドされたメソッドも呼び出されます。
つまり、新しい非表示の基本クラス メソッド、オーバーライドの基本クラス メソッドを書き換えます。
(3)新しいのは制約です。ジェネリックに型制約を追加するために使用されます。
りー以上がC# での new の使用法とオーバーライドとの違いの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。