C# とネイティブ拡張プロパティの不在
C# は現在、拡張プロパティを直接サポートしていません。 つまり、元のソース コードを変更せずに既存の型にプロパティを追加することはできません。 この制限は存在しますが、いくつかの代替戦略でこの機能を模倣できます。
代替アプローチ:
1 つの方法には、TypeDescriptor
の属性機能を活用することが含まれます。 これにより、実行時にオブジェクトに属性を動的にアタッチできるようになります。 ただし、これはよく知られたプロパティ構文とは異なります。
もう 1 つのより複雑なソリューションには、PostSharp や Mono.Cecil などのツールを使用した動的なコードの書き換えが含まれます。 ただし、このアプローチはコンパイラーの最適化を妨げ、コードの保守性を低下させる可能性があります。
今後の展望: 「すべてを拡張する」提案
拡張プロパティは将来の C# バージョンで提案されていますが、まだ実装されていません。 Roslyn の開発では、既存の機能の強化を優先してきました。
「すべてを拡張する」をめぐる現在進行中の会話は有望です。この概念は、プロパティ、フィールド、および静的クラスを拡張可能にすることを目的としています。 提案された構文では、指定されたコード ブロック内の型の特定またはすべてのインスタンスのインターフェイス メンバーを拡張できます。
この機能への関心にもかかわらず、将来の C# リリースにこの機能が含まれるかどうかは依然として不確実であり、変更される可能性があります。
概要:
ネイティブ拡張プロパティはまだ C# の一部ではありません。 回避策は存在しますが、それぞれにトレードオフがあります。 開発者は、「すべてを拡張する」などの機能の進捗状況を追跡するために、C# の進行中の開発に関する情報を常に入手する必要があります。
以上がC# はソース コードを変更せずに既存の型にプロパティを追加できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。