次の記事では、Composition C# の概要を説明します。 C# のクラス間には 2 種類の関係があります。最初のタイプの関係は「is a relationship」と呼ばれ、継承メカニズムを使用します。 2 番目の種類の関係は 2 つのクラス間の関係であり、2 つのサブタイプがあります。最初のタイプは「関係がある」と呼ばれます。
このタイプの関係では、異なるクラスの 1 つ以上のオブジェクトが関連クラスで宣言されます。ここで、さらに 2 つの部門、つまり集約と合成が登場します。集約では、ネストされたオブジェクトは、クラスの不可欠な部分でなくても、クラス内に独立して存在できます。一方、合成では、ネストされたオブジェクトまたは単数のネストされたオブジェクトがクラスを補完するため、そのオブジェクトまたはその存在なしではクラスは考えられなくなります。
C# での合成の構文
前述の構文を以下に示します。
1 2 3 4 5 6 7 8 9 |
|
以下はコンポジション C# の例です:
トレーニング クラスを考慮すると、2 つのコースが説明されます。現在、コースはコース クラスの説明に使用されています。したがって、トレーニング クラスは 2 つのコース インスタンスなしでは存在できません。これらのインスタンスは両方ともコース クラスの一部であるためです。さらに、コース クラスのこれらのインスタンスはどちらもトレーニング クラスの一部でもあります。
コード:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
|
出力:
この例では、作成されたクラスはどちらも通常のクラスです。ただし、コース クラスは、その内部のプロジェクト クラスのインスタンスを使用しています。これは、ある関数が別の関数内で呼び出されるのと同じ方法です。継承を使用すると、Project クラスからあらゆるものにアクセスできます。ただし、コンポジションを使用すると、当社が指定したコードのみにアクセスできます。ここで、Project クラスに間接的にアクセスできます。
コード:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
出力:
この例では、複合設計の構造について説明します。これは、合成に使用されるクラスとそれらのクラスの役割を理解するのに役立ちます。さらに、パターンの要素が相互にどのように関連しているかについても説明します。
コード:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
|
出力:
上記の記事に基づいて、C# の合成の概念を理解しました。 C# コーディングにおける合成の適用を理解するために、複数の例を検討しました。
以上が構成C#の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。