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

クラスのイメージ

クラス中身
PhoneDataName(名前)
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・クラスを組み合わせて 電話帳アプリを作る方法を解説します。

訪問数 5 回, 今日の訪問数 5回

広告

C#

Posted by hidepon