C# サンプル集 |
Visual Basic 中学校 > C# サンプル集 > C# サンプル集目次 >
構造体の宣言
2021/4/18
一般的な構造体
public struct SampleStruct
{
public string Field1; //フィールド
public int Prop1 {get; set;} //プロパティ。 この構文でプロパティを宣言できるのはC#2.0(2005年)以上。
//コンストラクター
public SampleStruct(string initValue) : this()
{
Field1 = initValue;
}
//メソッド
public int Add(int x, int y)
{
return x + y;
}
}
型パラメーターを持つ構造体(ジェネリック)
public struct SampleStruct<T>
{
public T X;
public T Y;
public T Z;
}
使用例
SampleStruct<decimal> s1;
s1.X = 100;
s1.Y = 200;
SampleStruct<string> s2;
s2.X = "AAA";
s2.Y = "BBB";
型パラメーターを2つ持つ構造体(ジェネリック)
public struct SampleStruct<T1, T2>
{
public T1 X;
public T2 Y;
}
使用例
SampleStruct<decimal, string> s1;
s1.X = 100;
s1.Y = "AAA";
SampleStruct<bool, DateTime> s2;
s2.X = true;
s2.Y = new DateTime(2024, 6, 27);
読み取り専用の構造体(readonly構造体)
public readonly struct SampleStruct
{
public readonly string Field1;
public int Prop1 {get;}
public string Prop2 {get; init;}
}
メモ:C# 7.2(2017年8月)以降で使用可能です。通常の構造体よりパフォーマンスが向上します。
ref構造体
public ref struct SampleStruct
{
public Span<int> Buffer1;
public ReadOnlySpan<int> Buffer2;
}
メモ:C# 7.2(2017年8月)以降で使用可能な特殊な構造体です。Span<T>、ReadOnlySpan<T>をメンバーに持つことができるようになりますが、多くの制約が課されます。
参考