CLSコンプライアンスに関するページをたくさん見つけました。
CLSへの準拠を理解しました:
多くの人々は、「コードを書く場合は、CLS準拠で書く必要がある」と書いています。しかし、私が読むことができる限り、汎用ソフトウェアでCLS準拠を使用する理由はありません。
私は正しいですか、それとも私は何かを逃しましたか?
ライブラリまたはフレームワークを作成する場合、ライブラリを任意のCLR言語から使用できるようにすることは理にかなっています。
ライブラリを配布する場合、CLS準拠は特に重要です。具体的には、CLS準拠を作成すると、ライブラリがすべてのCLS準拠言語で使用できることが保証されます。
たとえば、Visual Basicでは大文字と小文字が区別されませんが、C#では区別されます。 CLS準拠の要件の1つは、パブリック(および保護された)メンバー名が大文字と小文字のみで異なるべきではないことです。これにより、Visual Basicコード、またはに基づいて区別されないその他の.NET言語でライブラリを安全に使用できます。場合。
答えは、.NET言語間で最大の互換性を可能にすることです。 CLSはlingua francaであり、C#アセンブリがF#、Iron Python、C++/CLI、VB.NET、Boo、およびその他すべての.NET言語と連携できるようにします。その境界の外に出ると、アセンブリが正しく機能する場合がありますが、必ずしもそうとは限りません。
特定のコードをCLSに準拠させる理由はないかもしれませんが、人々はそれを「ベストプラクティス」であると言及しています-習慣ではなく、習慣として行うべきこと特定のシナリオではかなり良い。
つまり、理由がない限り、コードをCLS準拠にするそれは良い考えですnotにする理由があります。