質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

754閲覧

c#構造体の初期化の文の短縮

kikik

総合スコア24

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/03/09 07:10

編集2020/03/09 07:49

C#で構造体に与える初期化子をC言語みたいに構造体ごとにまとめて定義する方法を教えてください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class kouzoutai : MonoBehaviour
{
public struct status
{
public string name;
public double HP;
public double SP;
public double str;
public double def;
public double dex;
public double mid;
public double cg;
public double luc;
}
void Start()
{
status kongou = new status();

kongou = { "金剛", 134, 21, 29, 20, 3, 31, 24, 28 };/エラーの原因/
}
}

と書くと、
error CS1525: Invalid expression term '{'
error CS1002: ; expected
error CS1513: } expected
と言う3種類のエラーが合わせて19こ/エラーの原因/と書いてあるところに出ます。
一つずつ
kongou.name="金剛";
kongou.HP=134;
とやっていくべきでしょうか。
他にも構造体を作りたいため、短縮する方法があるのなら知りたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikik

2020/03/09 07:27

using System.Collections; using System.Collections.Generic; using UnityEngine; public class kouzoutai : MonoBehaviour { public struct status { public string name; public double HP; public double SP; public double str; public double def; public double dex; public double mid; public double cg; public double luc; } void Start() { status kongou = new status(); kongou = { "金剛", 134, 21, 29, 20, 3, 31, 24, 28 }; } と書くと、 error CS1525: Invalid expression term '{' error CS1002: ; expected error CS1513: } expected と言う3種類のエラーが合わせて19こ出ます。
kikik

2020/03/09 07:35

エラーはすべて下から2行目でした。(最後にもう一つ }が付きます書き忘れてました)
kikik

2020/03/09 07:39

一つずつ kongou.name="金剛"; kongou.HP=134; とやっていくべきでしょうか。
nskydiving

2020/03/09 07:41

質問欄は「編集」ボタンから変更することができます。 質問はコメント欄ではなく、質問欄へ記載してください。
kikik

2020/03/09 07:55

編集しました。
guest

回答2

0

ベストアンサー

構造体は以下のように初期化することができますよ。

C#

1status kongou = new status() 2{ 3 name = "金剛", 4 HP = 134, 5 SP = 21, 6 str = 29, 7 def = 20, 8 dex = 3, 9 mid = 31, 10 cg = 24, 11 luc = 28 12};

投稿2020/03/09 08:15

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikik

2020/03/09 08:25

書き換えたら、エラーが消えました。ありがとうございます。
guest

0

C# 構造体 初期化
検索すれば出てきますよ

投稿2020/03/09 08:04

YAmaGNZ

総合スコア10294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問