あどぽっぽは百合ゲーをつくりたい。

〜初心者百合ゲー制作者の勉強・開発進捗ブログ〜

【C#】構造体ビルドエラーを解決した話。

C#で構造体を定義する際にちょっとしたエラーが出たので解決策のメモを残しておきます。

環境

macOS Monterey 12.5

MacBook Pro (13-inch, M1, 2020)

VSCode 1.70.1

構造体とは

そもそも構造体とは、int型やfloat型、文字列など異なる型の複数のデータをひとまとめにできるものです。

以下のように定義します。

public struct Abc
{
  public string Name = "";
  public int Number = 0;
}

こちらも参考に↓

docs.microsoft.com

発生した問題

まず、以下のように構造体を定義しました。

public struct Abc
{
  public string Name = "";
  public int Number = 0;
}

しかしプログラムを実行したところ、以下のようなエラーがターミナルに出てプログラムが構造体のビルドに失敗しました。

error CS8983: フィールド初期化子を持つ 'struct' には、明示的に宣言されたコンストラクターを含める必要があります。
ビルドに失敗しました。ビルド エラーを修正して、もう一度実行してください。

解決策

以下のページを参考にしました。

stackoverflow-com.translate.goog

そしてこのようにプラスアルファ。

public struct Abc
{
  public string Name = "";
  public int Number = 0;
  public Abc() {} //この行を追加
}

publicパラメーターなしのコンストラクターを定義することで問題が解決するということです。

どうもバグなどではなくC#のバージョンアップによる変更だということですので、そういうものと思うしかないですかね。(コンパイラの関係などもあるようですが)

バージョンアップによる仕様変更などは本当に困りますね。

では今日はこの辺で。