C# 型の拡張: ネイティブ拡張プロパティの代替
C# には現在、拡張プロパティのネイティブ サポートがありません。 これは、既存の型にプロパティを直接追加できないことを意味します。 ただし、いくつかの回避策が存在します。
プロパティ追加の回避策:
TypeDescriptor
を使用して実行時にオブジェクトに属性を付加し、拡張プロパティを効果的にシミュレートします。今後の展望: 将来の可能性
まだ実装されていませんが、拡張プロパティは将来の C# 機能として提案されています。プロパティ拡張を含む、より広範な「すべてを拡張する」という概念が、将来の言語バージョンで検討されています。
現在のステータスと提案された構文
2017 年 5 月の時点で、拡張プロパティの提案は提案段階にあり、構文は変更される可能性があります。 提案された構文は次のようになります:
<code class="language-csharp">public extension DerivedType of BaseType : Interface { public PropertyType PropertyName { get; set; } }</code>
これにより、実質的に PropertyName
が BaseType
に追加されます。
概要
現在 C# では直接拡張プロパティを使用できませんが、実行可能な回避策は存在します。 「extension everything」が含まれる可能性があることは、型拡張性に対する将来の機能強化を示唆しています。
以上がネイティブ拡張プロパティを使用せずに C# の既存の型にプロパティを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。