System 名前空間


.NET Framework クラス ライブラリ
CLSCompliantAttribute クラス

更新 : 2007 年 11 月

プログラム要素が CLS (Common Language Specification) に準拠しているかどうかを示します。このクラスは継承できません。

名前空間 :  System
アセンブリ :  mscorlib (mscorlib.dll 内)
構文

Visual Basic (宣言)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.All, Inherited := True, AllowMultiple := False)> _
Public NotInheritable Class CLSCompliantAttribute _
    Inherits Attribute
Visual Basic (使用法)
Dim instance As CLSCompliantAttribute
C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
public sealed class CLSCompliantAttribute : Attribute
Visual C++
[SerializableAttribute]
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets::All, Inherited = true, AllowMultiple = false)]
public ref class CLSCompliantAttribute sealed : public Attribute
J#
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
/** @attribute AttributeUsageAttribute(AttributeTargets.All, Inherited = true, AllowMultiple = false) */
public final class CLSCompliantAttribute extends Attribute
JScript
public final class CLSCompliantAttribute extends Attribute
解説

CLSCompliantAttribute 属性は、プログラム要素であるアセンブリ、モジュール、クラス、構造体、列挙体、コンストラクタ、メソッド、プロパティ、フィールド、イベント、インターフェイス、デリゲート、パラメータ、および戻り値に適用できます。ただし、CLS に準拠しているかどうかは、アセンブリ、モジュール、型、および型のメンバに対してだけ意味があり、メンバのシグネチャの各部に対しては意味がありません。したがって、CLSCompliantAttribute がパラメータや戻り値のプログラム要素に適用されている場合は、無視されます。

CLSCompliantAttribute がプログラム要素に適用されていない場合は、既定では次のように判断されます。

  • アセンブリは CLS 非準拠。

  • 型は、その外側の型またはアセンブリが CLS に準拠している場合だけ CLS に準拠。

  • 型のメンバは、その型が CLS に準拠している場合にだけ CLS に準拠。

アセンブリに CLS 準拠のラベルが付けられている場合、false 引数を指定した CLSCompliantAttribute で、そのアセンブリでパブリックに公開されている型のうち CLS に準拠していない型をマークする必要があります。同様に、クラスに CLS 準拠のラベルが付けられている場合は、CLS に準拠していない全メンバを個別にマークする必要があります。CLS に準拠していないすべてのメンバは、その代わりとなる CLS 準拠のメンバを提供する必要があります。

アセンブリまたはモジュールに適用する属性は、using (Visual Basic では Imports) 句の後、コードの前に記述する必要があります。

属性の使用方法については、「属性を使用したメタデータの拡張」を参照してください。

ck7ah248.alert_note(ja-jp,VS.90).gifメモ :

現在の Microsoft Visual Basic コンパイラは CLS 準拠に関する警告が生成されないように設定されていますが、将来のリリースでは警告が生成されます。


CLSCompliantAttribute をアセンブリ全体に適用する例を次に示します。

using System;
    [assembly:CLSCompliant(true)]

次の宣言では、型 UInt32 が CLS では指定されていないため、CLS 準拠に関する警告が生成されます。

 public int SetValue(UInt32 value);

宣言部を CLSCompliantAttribute でマークすると、コンパイラ警告やコンパイラ エラーは生成されません。

[CLSCompliant(false)]
 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
参照

参照

その他の技術情報

タグ :


Page view tracker