英語で読む

次の方法で共有


CharSet 列挙型

定義

マーシャリングされる文字列に使用する文字セットを指定します。

C#
public enum CharSet
C#
[System.Serializable]
public enum CharSet
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CharSet
継承
属性

フィールド

名前 説明
Ansi 2

文字列をマルチバイト文字としてマーシャリングします。Windows システムの既定は Windows (ANSI) コード ページで Unix 既定は UTF-8 です。

Auto 4

対象オペレーティング システムに適するように、自動的に文字列をマーシャリングします。 詳細については、文字セットとマーシャリングに関するページを参照してください。 共通言語ランタイムの既定値は Auto ですが、言語によってこの既定値がオーバーライドされることがあります。 たとえば、C# および Visual Basic の既定では、すべてのメソッドと型が Ansi としてマークされます。

None 1

この値は今後使用しません。動作は Ansi と同じです。

Unicode 3

文字列を Unicode 2 バイト文字の文字列としてマーシャリングします。

次のコード例は、 をマネージド定義に適用するときに列挙値をStructLayoutAttribute指定CharSetする方法を示しています。

C#
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct MyPerson
{
    public String first;
    public String last;
}

注釈

アンマネージド文字列型は複数あり、マネージド文字列型は 1 つだけであるため、マネージド文字列をアンマネージド コードにマーシャリングする方法を指定するには、文字セットを使用する必要があります。 文字セット オプションを提供するこの列挙体は、 と StructLayoutAttributeDllImportAttribute使用されます。 この列挙に関連付けられている文字列マーシャリングと名前の一致動作の詳細については、「 文字セットの指定」を参照してください。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください