C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のコピーコンストラクターとは何ですか?


コピーコンストラクタは、別のオブジェクトから変数をコピーしてオブジェクトを作成します。

例を見てみましょう-

using System;
namespace Demo {
   class Student {
      private string name;
      private int rank;

      public Student(Student s) {
         name = s.name;
         rank = s.rank;
      }

      public Student(string name, int rank) {
         this.name = name;
         this.rank = rank;
      }

      public string Display {
         get {
            return " Student " + name +" got Rank "+ rank.ToString();
         }
      }
   }

   class StudentInfo {
      static void Main() {
         Student s1 = new Student("Jack", 2);

         // copy constructor
         Student s2 = new Student(s1);

         // display
         Console.WriteLine(s2.Display);
         Console.ReadLine();
      }
   }
}

上記で見たように、最初にコピーコンストラクターを宣言しました-

public Student(Student s)

次に、Studentクラスの新しいオブジェクトが作成されます-

Student s1 = new Student("Jack", 2);

これで、s1オブジェクトが新しいオブジェクトs2-

にコピーされます。
Student s2 = new Student(s1);

これをコピーコンストラクタと呼びます。


  1. コンストラクターがJavaでfinalになれないのはなぜですか?

    メソッドをfinalにするときはいつでも、オーバーライドすることはできません。 それ。つまり、サブクラスからスーパークラスのfinalメソッドに実装を提供することはできません。 つまり、メソッドをfinalにする目的は、外部(子クラス)からのメソッドの変更を防ぐことです。 クラスを拡張するときはいつでも継承。子クラスは、コンストラクターを除くスーパークラスのすべてのメンバーを継承します。 つまり、コンストラクタはJavaで継承できないため、オーバーライドすることはできません。 コンストラクター。 したがって、コンストラクターの前にfinalを記述しても意味がありません。したがって、Ja

  2. サイバーパンク コピー マルウェアとは?

    最近のコンピュータ ゲームには、マルウェアが含まれている場合があります。それは、ゲーム ソフトウェアが悪意のあるコンポーネントをコンピューターなどのエンド デバイスに送信する単なるおとりであるか、サイバー犯罪者がスクリプトやコードを正当なゲームに挿入した可能性があります。そのため、安全を確保するために、Steam などの合法的で既知のゲーム プラットフォームを通じて、ゲーム プログラムの正規のコピーを入手してダウンロードすることをお勧めします。 最近、サイバー詐欺師が、今年大ヒットしているゲームである Cyber​​punk 2077 の偽のコピーを配布しているという報告がありました。この偽