C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.63563 の関連記事表示

<< 0 >>
■63563  構造体の配列
□投稿者/ 三木 -(2012/09/07(Fri) 12:12:30)

    分類:[C#] 

    以下のような構造体を作りたいのですが、
    「フィールド初期化子は、静的でないフィールド、メソッド、またはプロパティ GROUP_NUM' を参照できません」と怒られます。
    なぜでしょうか。

    public int GROUP_NUM = 40;
    public struct point_input
    {
    public bool data_1;
    public int data_2;
    }
    point_input[] data = new point_input[GROUP_NUM];

    以上、よろしくお願いします。
親記事 /過去ログ106より / 関連記事表示
削除チェック/

■63566  Re[1]: 構造体の配列
□投稿者/ 魔界の仮面弁士 -(2012/09/07(Fri) 12:29:38)
    No63563 (三木 さん) に返信
    > 「フィールド初期化子は、静的でないフィールド、メソッド、またはプロパティ GROUP_NUM' を参照できません」と怒られます。
    > なぜでしょうか。
    
    何故と言われても、そういう仕様になっているからとしか答えられないのですが、
    どのように修正するかという話なら――
    
    (案1) public int GROUP_NUM = 40; の代わりに
          public const int GROUP_NUM = 40; を採用する。
    
    (案2) point_input[] data; の初期化処理を、フィールド初期化子で行うのではなく、
          親クラスのコンストラクタで行うようにする。
記事No.63563 のレス /過去ログ106より / 関連記事表示
削除チェック/

■63565  Re[1]: 構造体の配列
□投稿者/ shu -(2012/09/07(Fri) 12:22:20)
    No63563 (三木 さん) に返信
    
    これなら大丈夫ですが、どのように書かれましたか?
    
    	public partial class Form1 : Form
    	{
    		public int GROUP_NUM = 40;
    
    		public struct point_input
    		{
    			public bool data_1;
    			public int data_2;
    		}
    
    		public Form1()
    		{
    			InitializeComponent();
    			point_input[] data = new point_input[GROUP_NUM];
    		}
    	}
記事No.63563 のレス /過去ログ106より / 関連記事表示
削除チェック/

■63567  Re[2]: 構造体の配列
□投稿者/ 三木 -(2012/09/07(Fri) 12:34:16)
    2012/09/07(Fri) 12:34:36 編集(投稿者)

    No63565 (shu さん) に返信
    > ■No63563 (三木 さん) に返信
    >
    > これなら大丈夫ですが、どのように書かれましたか?
    >
    > public partial class Form1 : Form
    > {
    > public int GROUP_NUM = 40;
    >
    > public struct point_input
    > {
    > public bool data_1;
    > public int data_2;
    > }
    >
    > public Form1()
    > {
    > InitializeComponent();
    > point_input[] data = new point_input[GROUP_NUM];
    > }
    > }


    ありがとうございます。できました!!

    上のソースで言うなら、point_input[] data = new point_input[GROUP_NUM]を
    public Form1()の外でしていました////
記事No.63563 のレス / END /過去ログ106より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -