クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
.NET Framework 3.5
.NET Framework 3.5
System 名前空間
CLSCompliantAttribute クラス

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.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
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker