更新 : 2007 年 11 月
プログラム要素が CLS (Common Language Specification) に準拠しているかどうかを示します。このクラスは継承できません。
名前空間 :
System
アセンブリ :
mscorlib (mscorlib.dll 内)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.All, Inherited := True, AllowMultiple := False)> _
Public NotInheritable Class CLSCompliantAttribute _
Inherits Attribute
Dim instance As CLSCompliantAttribute
[SerializableAttribute]
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
public sealed class CLSCompliantAttribute : Attribute
[SerializableAttribute]
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets::All, Inherited = true, AllowMultiple = false)]
public ref class CLSCompliantAttribute sealed : public Attribute
/** @attribute SerializableAttribute */
/** @attribute ComVisibleAttribute(true) */
/** @attribute AttributeUsageAttribute(AttributeTargets.All, Inherited = true, AllowMultiple = false) */
public final class CLSCompliantAttribute extends Attribute
public final class CLSCompliantAttribute extends Attribute
CLSCompliantAttribute 属性は、プログラム要素であるアセンブリ、モジュール、クラス、構造体、列挙体、コンストラクタ、メソッド、プロパティ、フィールド、イベント、インターフェイス、デリゲート、パラメータ、および戻り値に適用できます。ただし、CLS に準拠しているかどうかは、アセンブリ、モジュール、型、および型のメンバに対してだけ意味があり、メンバのシグネチャの各部に対しては意味がありません。したがって、CLSCompliantAttribute がパラメータや戻り値のプログラム要素に適用されている場合は、無視されます。
CLSCompliantAttribute がプログラム要素に適用されていない場合は、既定では次のように判断されます。
アセンブリに CLS 準拠のラベルが付けられている場合、false 引数を指定した CLSCompliantAttribute で、そのアセンブリでパブリックに公開されている型のうち CLS に準拠していない型をマークする必要があります。同様に、クラスに CLS 準拠のラベルが付けられている場合は、CLS に準拠していない全メンバを個別にマークする必要があります。CLS に準拠していないすべてのメンバは、その代わりとなる CLS 準拠のメンバを提供する必要があります。
アセンブリまたはモジュールに適用する属性は、using (Visual Basic では Imports) 句の後、コードの前に記述する必要があります。
属性の使用方法については、「属性を使用したメタデータの拡張」を参照してください。
メモ : |
|---|
現在の Microsoft Visual Basic コンパイラは CLS 準拠に関する警告が生成されないように設定されていますが、将来のリリースでは警告が生成されます。 |
CLSCompliantAttribute をアセンブリ全体に適用する例を次に示します。
using System;
[assembly:CLSCompliant(true)]
次の宣言では、型 UInt32 が CLS では指定されていないため、CLS 準拠に関する警告が生成されます。
public int SetValue(UInt32 value);
宣言部を CLSCompliantAttribute でマークすると、コンパイラ警告やコンパイラ エラーは生成されません。
public int SetValue(UInt32 value);
System..::.Object
System..::.Attribute
System..::.CLSCompliantAttribute
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
.NET Framework
サポート対象 : 3.5、3.0、2.0、1.1、1.0
.NET Compact Framework
サポート対象 : 3.5、2.0、1.0
XNA Framework
サポート対象 : 2.0、1.0
参照
その他の技術情報