1

重複の可能性:
Java または C# で多重継承が許可されないのはなぜですか?

c# が多重継承をサポートしていない理由を知りたいですか? インターフェイスを使用して可能であることは知っていますが、コンパイラが多重継承をサポートしない理由は何ですか?

4

2 に答える 2

0

C#また、.netCLR は MI を実装していません。これは、「ソースがより複雑になる」からではなく、C#、VB.net、および他の言語間で相互運用する方法をまだ結論付けていないためです。

MI が真に適切な場所は、実際には非常に少ないです。多くの場合、代わりに複数のインターフェイスの継承を使用して作業を完了できます。それ以外の場合は、カプセル化と委任を使用できる場合があります。ミックスインのような少し異なる構造を追加すると、実際にはより強力になるでしょうか?

複数の実装の継承により、実装が非常に複雑になります。この複雑さは、キャスト、レイアウト、ディスパッチ、フィールド アクセス、シリアライゼーション、ID 比較、検証可能性、リフレクション、ジェネリック、およびおそらく他の多くの場所に影響を与えます。

于 2012-06-14T07:29:46.960 に答える
0

MSOOP設計で関係を管理するには複雑すぎるため、フレームワークで管理する必要がある複雑さに見合わないという理由で拒否されました。

于 2012-06-14T07:27:26.237 に答える