1

たとえば、Visual Basic .net には以前は演算子のオーバーロードがなかったため、通常のメソッドとしても提供されていない場合、型のオーバーロードされた演算子を使用できないことを読みました (operator+ の代わりに追加)。

VB にこの機能があるので、演算子のオーバーロードのみではなく、Add、Subtract などの通常の静的メソッドがある場合、CLSCompliant 属性は気にしますか?

口頭の静的メソッドを使用せずにいくつかの型を作成しましたが、演算子のオーバーロードのみであり、C# コンパイラは気にしませんでした。問題がある場合は、私に警告しますよね?

4

1 に答える 1

6

CLS への準拠は、古い ものとは関係ありません。それは、(コードを使用するときに) 任意の言語が処理することを合理的に期待するべき機能のコア セットにすぎません。たとえば、言語で大文字と小文字が区別されると仮定するのは合理的ではないため、メンバー "Foo" と "foo" は C# では有効ですが、CLS に準拠していません。

コンパイラは、要求すると警告します。[CLSCompliant(true)]タイプ/アセンブリ/などに追加すると、主張が検証されます。

ISV の場合は、CLS への準拠について検討することをお勧めします。自分自身とチームのためだけにコードを書いているのであれば、おそらくオーバーヘッドは必要ありません。

于 2009-06-06T21:50:07.513 に答える