C#のインスタンス化した際に初期値を設定するサンプルです。
オブジェクト初期化子と呼ばれます。
目次
説明 | オブジェクト初期化子 |
サンプル | クラスをインスタンス化する時に初期値も設定する |
クラスを複数のデータとしてリストに入れる |
オブジェクト初期化子
var 変数 = New クラス {プロパティ = "値",プロパティ = "値"・・・} |
- クラスをインスタンス化する時に、初期値も設定できます。
- クラスの後に()をつけても同じ動きをします。
- 以下は、Microsoftのオブジェクト初期化子のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/object-and-collection-initializers
クラスをインスタンス化する時に初期値も設定する
クラスをインスタンス化する時に初期値も設定するサンプルです。
using System;
class Class1
{
public string id { get; set; }
public string name { get; set; }
public string romaji { get; set; }
}
class Test1
{
static void Main()
{
var c1 = new Class1 {id = "1", name = "鈴木", romaji = "suzuki" };
Console.WriteLine(c1.id); // 1
Console.WriteLine(c1.name); // 鈴木
Console.WriteLine(c1.romaji); // suzuki
}
}
3~8行目はクラスです。
5~7行目はプロパティです。
13行目は、オブジェクト初期化子です。NewでClass1クラスをインスタンス化し、波括弧以下でプロパティに値を設定しています。
15~17行目はそれぞれ設定した値を表示しています。
クラスを複数のデータとしてリストに入れる
クラスを複数のデータとしてリストに入れるサンプルです。
using System;
using System.Collections.Generic;
class Class1
{
public string id { get; set; }
public string name { get; set; }
public string romaji { get; set; }
}
class Test1
{
static void Main()
{
var list1 = new List<Class1>();
list1.Add(new Class1 { id = "1", name = "鈴木", romaji = "suzuki" });
list1.Add(new Class1 { id = "2", name = "田中", romaji = "tanaka" });
list1.Add(new Class1 { id = "3", name = "佐藤", romaji = "sato" });
Console.WriteLine(list1[0].name); // 鈴木
Console.WriteLine(list1[1].name); // 田中
Console.WriteLine(list1[2].name); // 佐藤
}
}
14行目は、リストのインスタンスを生成しています。
16~18行目は、オブジェクト初期化子を使用してクラスのインスタンスを生成してプロパティに値をセットして、インスタンスをリストにセットしています。
20~22行目は、リストにセットしたnameの値を表示しています。
関連の記事