返品タイプのコラボレーションのリターンタイプ:サポートと実装
C#のリターンタイプにより、デリバティブクラスはベースクラスよりも具体的なタイプを返すことができます。この機能により、専門的な行動の両方を提供し、階層構造の完全性を維持できる方法を作成できます。
例を見てみましょう:
このシーンでは、
クラスに文字列を返す方法があり、そのMeowコールが非常に便利であることを指定する方法があります。ただし、C#は戻り型の調整を直接サポートしていません。<code class="language-csharp">public abstract class Animal { public abstract string GetName(); } public class Cat : Animal { public string GetMeow(); }</code>
2011年の最初の回答では、C#は共同の変更を返すことをサポートしていませんでした。公務員(CLR)の制限により、将来それを実現することはほとんどありませんでした。ただし、C#の最新バージョンでは、この状況が変わりました。リンクの記事「Cat
https://www.php.cn/link/40f4d60542d86344e5711c7a5584832
return Type CO -Changesを導入する前に、1つの解決策は、派生クラスの返品値を取得するための中間法を導入することです。
このテクノロジーを使用すると、を取得し、この例で文字列を返すことができます。<code class="language-csharp">public abstract class Animal { public abstract object GetContents(); public Animal Contents() { return (Animal)GetContents(); } } public class Cat : Animal { protected override object GetContents() { return this; } public new string Contents() { return GetMeow(); } }</code>
C#9.0の前のバージョンは、戻り型の調整を直接サポートしていませんが、議論されるソリューションは、必要な動作を実現する方法として使用できます。ただし、C#のより高いバージョンでは、リターンタイプの調整の正式な実装は、よりエレガントで簡潔なソリューションを提供することに注意する必要があります。 Cat
以上がC#はリターンタイプの共分散をサポートしますか?それをどのように達成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。