C# クラスの作り方|データの形を定義する
C#で複数のデータをまとめて扱うには クラス を使います。
class PhoneData
{
public string Name;
public string PhoneNumber;
}
PhoneData p = new PhoneData();
p.Name = "山田";
p.PhoneNumber = "090-1111-2222";
名前と電話番号を 1つの「PhoneData」として扱えるようになります。
この記事では データを表すクラスの作り方を解説します。
C# クラスとは
クラスは
データの形(設計図)を定義する
ものです。
- 変数:1つの値
- 配列:同じ型の並び
- クラス:複数の情報を1つにまとめる
電話帳1件 = 名前 + 電話番号 のように 関連するデータをまとめます。
基本構文
class クラス名
{
public 型 プロパティ名1;
public 型 プロパティ名2;
}
シンプルなサンプル
PhoneData.cs
class PhoneData
{
public string Name;
public string PhoneNumber;
}
Program.cs
PhoneData p = new PhoneData();
p.Name = "山田";
p.PhoneNumber = "090-1111-2222";
Console.WriteLine($"{p.Name} : {p.PhoneNumber}");
実行結果
山田 : 090-1111-2222
クラスのイメージ
| クラス | 中身 |
|---|---|
| PhoneData | Name(名前) PhoneNumber(電話番号) |
1つの PhoneData に 2つの情報が入っています。
List と組み合わせる
クラスで1件の形を決め List で複数件を管理します。
List<PhoneData> phoneBook = new List<PhoneData>();
PhoneData p1 = new PhoneData();
p1.Name = "山田";
p1.PhoneNumber = "090-1111-2222";
phoneBook.Add(p1);
PhoneData p2 = new PhoneData();
p2.Name = "佐藤";
p2.PhoneNumber = "080-3333-4444";
phoneBook.Add(p2);
プロパティを追加する
住所を追加する例です。
class PhoneData
{
public string Name;
public string PhoneNumber;
public string Address; // 追加
}
PhoneData p = new PhoneData();
p.Name = "山田";
p.PhoneNumber = "090-1111-2222";
p.Address = "東京都渋谷区";
クラスに1行足すだけで 全データに住所を持たせられます。
CSV読み込みと組み合わせる
List<PhoneData> phoneBook = new List<PhoneData>();
string[] lines = File.ReadAllLines("data.txt");
foreach (string line in lines)
{
string[] data = line.Split(',');
PhoneData p = new PhoneData();
p.Name = data[0];
p.PhoneNumber = data[1];
phoneBook.Add(p);
}
クラスと Dictionary の違い
| 項目 | クラス | Dictionary |
|---|---|---|
| 項目追加 | プロパティを足すだけ | キー・値の2つだけ |
| 拡張性 | 高い | 低い |
| 型の安全性 | コンパイル時にチェック | 実行時にエラーになる場合も |
住所・メール・メモを追加するなら クラスが向いています。
プロパティの書き方(発展)
値をチェックしたい場合
class PhoneData
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
}
まずは public string Name; の形で十分です。
よくあるエラー
new を忘れる
PhoneData p; // 未代入
p.Name = "山田"; // エラー
正しい
PhoneData p = new PhoneData();
p.Name = "山田";
クラス名とファイル名
C#ではクラス名とファイル名は一致させなくても動きますが PhoneData クラスなら PhoneData.cs に書くのが一般的です。
まとめ
C#のクラスは
関連するデータを1つにまとめる
ための基本です。
主な用途
- 電話帳1件(名前・電話番号・住所)
- 商品1件(名前・価格・在庫)
- 生徒1人(名前・点数・出席)
List と組み合わせると 電話帳アプリのような実践的なプログラムが作れます。
関連記事
前の記事
C# Listの使い方|複数データを管理する
C# Dictionaryの使い方|キーで検索する
では クラスと組み合わせる List と Dictionary を解説しています。
実践
WinFormsで作る電話帳アプリ(Listで管理する版)
では Split・CSV・List・クラスを組み合わせて 電話帳アプリを作る方法を解説します。



ディスカッション
コメント一覧
まだ、コメントがありません