3

私は3つのフィールドを含むいくつかのクラスを持っています:

protected bool _isRunning = false;

protected readonly ParameterCollection _parameters = null;

protected readonly ParameterCollection _defaultParameters = null;

それが含まれているアセンブリは CLS 準拠としてマークされており (必要です)、Visual Studio 2010 は、これらの 3 つのフィールドの識別子が CLS に準拠していないことを示しています。彼らの何が問題なのですか?

PS: ParameterCollection は、重要な情報である場合、KeyedCollection から派生したクラスです。

4

3 に答える 3

7

Name <membername> is not CLS-compliantからの Microsoft からの回答は次のとおりです。

このエラーを修正するには

ソース コードを制御できる場合は、アンダースコアで始まらないようにメンバー名を変更してください。

メンバー名を変更しないことが必要な場合は、その定義から CLSCompliantAttribute を削除するか、としてマークします。アセンブリを <CLSCompliant(True)> としてマークすることもできます。

于 2011-09-26T13:45:32.930 に答える
2

彼らの何が問題なのですか?

アンダースコアで始まります。

詳細については、こちらを参照してください

MSDNによると:

CLS 準拠の言語コンパイラは、Unicode 標準 3.0 の Technical Report 15 の Annex 7 の規則に従う必要があります。これは、識別子を開始して含めることができる文字のセットを管理します。この標準は http://www.unicode.org/unicode/repor...5/tr15-18.htmlで入手できます。2 つの識別子が異なると見なされるためには、大文字と小文字だけでなく、それらが異なる必要があります。

Unicode Standard 3.0 Technical Report 15、Annex 7 から:

つまり、識別子の最初の文字は、大文字、小文字、表題文字、修飾文字、その他の文字、または文字番号にすることができます。識別子の後続の文字は、それらの任意の文字に加えて、非間隔記号、間隔結合記号、10 進数、接続句読点、および書式設定コード (right-left-mark など) にすることができます。通常、フォーマット コードは、識別子を保存または比較する前に除外する必要があります。

于 2011-09-26T13:38:57.780 に答える
0

CLS に準拠するには、識別子は Unicode 標準 ( MSDN ) の Technical Report 15 の Annex 7 のガイドラインに従う必要があります。これには、最初の文字が文字 ( source ) であるという要件が含まれます。

于 2011-09-26T13:43:17.783 に答える