ホントは完成するまでプログラミングの勉強をしていることを隠すつもりだったのですが、掲示板等で質問していると質問者と回答者のレベルギャップが激しく、会話が噛み合わないことが多数ありました。相手の能力・知識を見誤っている場合、会話がうまくいかないことが多くなります。
 もし、会話の前に理解度に関する情報を把握していれば若干ですがスムーズに進行できると思いました。
  1. 私がどの程度C#を理解しているかを示す。
  2. 教えて頂いたことを理解した ということを示す。
 以上の目的のために記事を書きます。

 
 課題
・引数としての構造体にデフォルト値以外の値を持たせる

 asd.Engine.Initialize("STG", 640, 480, new asd.EngineOption()); 

  
 asd.EngineOption() が構造体でここの値を調整することでウィンドウをフルスクリーンにしたり様々な変更ができるそうです。ではなぜよくわからないのか、それは


 引数をもたないコンストラクタ


 だからです。引数があれば Vector2DF(3,4) のようにインスタンス生成時点で値を決めることができますが、引数なしコンストラクタをもつ構造体フィールドをどうやって決めればよいのかさっぱりわかりませんでした。


 
 解決法

 事前に構造体インスタンスを生成する 



var option = new asd.EngineOption
{
IsFullScreen = true
};
asd.Engine.Initialize("Empty", 640, 480, option);


  
  事前にoptionという変数名のvar型インスタンスを生成します。生成時にメンバー変数IsFullScreenにtrue(デフォルトではない)を代入します。Engine.Initializeの引数にインスタンスであるoptionを割り当てます。

 
 うーん、やっぱりしっくり来ませんね。


疑問点
  • 構造体コンストラクタはクラスコンストラクタと異なるのか?
  • {}でくくってフィールドを変更するものなのか?