13

CLS-Compliance に関して、以前 VB6 から移植したアプリに対して、次のようなしつこいコンパイラ警告がいくつかあります。

Name '_AnIdentifier' is not CLS-Compliant.
Type of parameter 'myType' is not CLS-Compliant.

それにもかかわらず、私のアプリは COM およびマネージ クライアントから問題なく動作しているようです。コードを CLS に準拠させるにはどうすればよいかを説明している記事をいくつか見てきましたが、しつこい警告を取り除くためにとにかく実行するつもりですが、CLS に準拠していないコードの実際の欠点について知りたいと思っています。条項?まだ発見されていない、この押し付けの制限とは何ですか?

4

2 に答える 2

10

基本的に、一部の .NET 言語で使用すると、クラスにアクセスできない場合があります (または、大きな正の数が負として扱われるなど、奇妙な動作をする場合があります)。それらがどの言語であるかはわかりません。

たとえば、言語がアンダースコアで始まる識別子を認識する必要があるとは思いません。C# では許可されているので安全ですが、他の言語では "_AnIdentifier" が非表示になっているか、システムで生成された名前になっている可能性があります。

于 2008-12-02T16:19:30.793 に答える
4

CLSに準拠していないコードが難読化されている場合、難読化ツールが誤った難読化コードを生成する問題が発生しました。

于 2008-12-02T16:44:39.510 に答える