タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Programmingとmethodとnewに関するItisangoのブックマーク (2)

  • [C#] overrideとnewの違い | ミライニトドケ

    派生クラスで基クラスと同じシグネチャのメソッドを実装することが出来ますが、このときnewを使うかoverrideを使うかで動きが変わってきます。 結論を先に書いておくと・・・ newはフィールドの型に応じて呼び出しメソッドが決められる。 overrideはインスタンスの型に応じて呼び出しメソッドが決められる。 では、細かく見ていきましょう。 基クラス(Base)とその派生クラス(Hoge)を作って、それぞれの動きを確認してみます。 まず、こんな感じで実装。 // 基クラス class Base { public void CallNew() { Console.WriteLine("Base::CallNew"); } public virtual void CallOverride() { Console.WriteLine("Base::CallOverride"); } } /

    Itisango
    Itisango 2019/08/03
    よく考えられていますねぇ。 #oop
  • Override キーワードと New キーワードによるバージョン管理 - C#

    C# 言語は、異なるライブラリ内の 基底 クラスと派生クラスの間のバージョン管理が進化し、下位互換性を維持できるように設計されています。 つまり、たとえば、派生クラスのメンバーと同じ名前の基底 クラス に新しいメンバーを導入することは、C# で完全にサポートされており、予期しない動作には至りません。 また、クラスは、メソッドが継承されたメソッドをオーバーライドすることを意図しているかどうか、またはメソッドが同様の名前の継承メソッドを非表示にする新しいメソッドであるかどうかを明示的に指定する必要があることを意味します。 C# では、派生クラスには基底クラス メソッドと同じ名前のメソッドを含めることができます。 派生クラスのメソッドの前に 新しい キーワードまたは オーバーライド キーワードがない場合、コンパイラは警告を発行し、メソッドは new キーワードが存在するかのように動作します。 派

  • 1