編譯器警告 (層級 2) CS3021
'type' 不需要 CLSCompliant 屬性,因為組件沒有 CLSCompliant 屬性
如果在組件層級 CLSCompliant 屬性未設為 true 的組件 (亦即,程式碼 [assembly: CLSCompliant(true)]
) 中,[CLSCompliant(false)]
出現在類別上,即發生此警告。 因為組件未將它自己宣告為符合 CLS 規範,所以組件內的任何項目都不需要將它自己宣告為不符合規範,因為它是假設為不符合規範。 如需 CLS 合規性的詳細資訊,請參閱語言獨立性以及與語言無關的元件。
若要移除這個警告,請移除屬性或加入組件層級屬性。
下列範例會產生 CS3021:
// CS3021.cs
using System;
// Uncomment the following line to declare the assembly CLS Compliant,
// and avoid the warning without removing the attribute on the class.
//[assembly: CLSCompliant(true)]
// Remove the next line to avoid the warning.
[CLSCompliant(false)] // CS3021
public class C
{
public static void Main()
{
}
}