3

Are there any non CLS compliant .NET languages in common use these days? It looks like every managed language that ships out of the box with VS2012 supports unsigned integer types, so practically speaking how much trouble is one likely to get into using 'unsigned' in ones public / protected type signatures for stuff going forwards?

It looks like the CLR, CTS and associated tech are largely 'done' at this point so one wonders how much of a deal CLS compliance is for 'modern' .NET code.

Are we jumping through CLS hoops now purely out of momentum?

4

1 に答える 1

5

CLS 準拠は、言語ではなくコードのプロパティです。VB.NET の初期のバージョンでは、誤って準拠していないコードを記述できませんでした。それは長くは続かず、2005 年頃に符号なし整数型のサポートを獲得しました。

それはまだ関連性があり、.NET に移植された言語で使用される可能性があり、符号なし整数をサポートしていないか、大文字と小文字を区別しないなどのライブラリを作成できます。アプローチは簡単です。コードで非準拠の機能を使用しないようにするだけで、アセンブリは問題なく動作するはずです。これは非常に簡単に行うことができます。次のコード行を任意の場所に追加します。

 [assembly:CLSCompliant(true)]

また、ルールに違反すると、コンパイラは警告を出します。

于 2012-12-04T14:24:51.760 に答える