C#
 Computer >> コンピューター >  >> プログラミング >> C#

【C#入門】構造体(struct)の定義方法と使い方を解説

C#における構造体(struct)は、値型のデータ型です。1つの変数に、異なるデータ型の関連するデータをまとめて保持することができます。構造体を作成するには、structキーワードを使用します。

構造体を定義するには、structステートメントを使用します。このステートメントにより、プログラム内で複数のメンバーを持つ新しいデータ型が定義されます。

構造体の定義例

以下は、構造体を定義する基本的な書き方です。

struct Books {
    public string title;
    public string author;
    public string subject;
    public int book_id;
};

この例では、書籍のタイトル(title)、著者(author)、主題(subject)、書籍ID(book_id)という4つのメンバーを持つ「Books」構造体を定義しています。このように、関連する複数のデータを1つの型として扱えるのが構造体の利点です。

サンプルプログラム

次に、C#で構造体を作成して使用する完全なサンプルコードを示します。

using System;

struct Books {
    public string title;
    public string author;
    public string subject;
    public int book_id;
};

public class testStructure {
    public static void Main(string[] args) {
        Books Book1; /* Book型のBook1を宣言 */
        Books Book2; /* Book型のBook2を宣言 */

        /* Book1の情報を設定 */
        Book1.title = "Learn AngularJS";
        Book1.author = "David";
        Book1.subject = "AngularJS";
        Book1.book_id = 345;

        /* Book2の情報を設定 */
        Book2.title = "Learn Java in 7 days";
        Book2.author = "Jack";
        Book2.subject = "Java";
        Book2.book_id = 567;

        /* Book1の情報を表示 */
        Console.WriteLine("Book 1 title : {0}", Book1.title);
        Console.WriteLine("Book 1 author : {0}", Book1.author);
        Console.WriteLine("Book 1 subject : {0}", Book1.subject);
        Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);

        /* Book2の情報を表示 */
        Console.WriteLine("Book 2 title : {0}", Book2.title);
        Console.WriteLine("Book 2 author : {0}", Book2.author);
        Console.WriteLine("Book 2 subject : {0}", Book2.subject);
        Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);

        Console.ReadKey();
    }
}

このプログラムでは、まずBooks構造体型の変数Book1Book2を宣言し、それぞれのメンバーに値を代入した後、Console.WriteLineメソッドで内容を表示しています。

実行結果

Book 1 title : Learn AngularJS
Book 1 author : David
Book 1 subject : AngularJS
Book 1 book_id :345
Book 2 title : Learn Java in 7 days
Book 2 author : Jack
Book 2 subject : Java
Book 2 book_id : 567

補足:構造体とクラスの違い

構造体はクラスとよく似ていますが、以下のような重要な違いがあります。

  • 構造体は値型、クラスは参照型です。
  • 構造体を変数に代入するとデータ全体がコピーされますが、クラスは参照(アドレス)が渡されます。
  • 構造体は継承をサポートしません。

そのため、座標やサイズ、書籍情報のような小規模なデータをまとめて扱う場合には、構造体を使用すると効率的にコードを記述できます。

  1. C#で長方形(多次元)配列を定義する方法をわかりやすく解説

    C#における多次元配列は、その形状から長方形配列(rectangular array)とも呼ばれます。各行・各列の要素数が一定であるため、表形式のデータを扱うのに適しています。多次元配列の宣言方法まず、3次元の整数型配列を宣言する基本的な構文を見てみましょう。int[ , ] a;同様に、2次元配列を宣言してインスタンス化する場合は次のように記述します。int[] a = new int[3, 3];この例では、3行×3列の2次元配列が生成されます。宣言と同時に初期値を指定することも可能です。int[] b = new int[] { { 1, 2, 3 }, { 4, 5,

  2. Pythonでタプルを定義するには?基本の作成方法をわかりやすく解説

    Pythonにおけるタプルとはタプル(tuple)は、Pythonの標準データ型のひとつで、複数のオブジェクトを順序付けて格納できるイミュータブル(変更不可)なシーケンスです。リストとよく似ていますが、一度作成した後は要素の追加・削除・変更ができないという点が大きな特徴です。タプルの基本的な定義方法タプルオブジェクトは、1つ以上のオブジェクトをカンマ(,)で区切って並べるだけで作成できます。各要素は必ずしも同じ型である必要はなく、整数・文字列・浮動小数点数・真偽値など、異なる型のオブジェクトを自由に混在させることができます。また、コレクション全体を丸括弧 ( ) で囲むこともできますが、これは