大復活C#学習準備_9

このC#の学習準備のブログもそろそろまとめに入り、次のテーマごとのステップ学習にレベルアップしなければならない。準備段階として、プログラムを書くための最低限の目標であるクラスの作成について記録しておく。

f:id:yasui_swift:20201124072815p:plain

基本的なクラスの作り方を学ぶ。目標はお年玉プロジェクトで「孫」の「お小遣い」を表示する画面に名前とお小遣いの額を一行に表示するコードが書けるようになることとする。学習の内容は二次元配列を使うこと、if文、配列の内容を繰り返し表示するforeachを使うことを要件とした。これで学習準備を一区切りとしたい。

多次元配列は単純化のために2次元を使った。要素は「孫の名前」の文字列と「お小遣い」の数値としたかったが、文字列と数値の混在する配列の作り方がわからず両者ともに文字列にして扱うことにした。あとで計算時に数値は文字列から整数に変換することにする。もし、今後、文字列と数値が混在する多次元配列の扱い方がわかれば改めて作り直すことにしたい。(後註:配列は同一データ型でしかつくることができない.Listならできるのかもしれないが、未学習)

はじめに新しいクラスの追加は画面右側のソリューションエクスプローラーのプロジェクト名(ここではOtoshidamaApp)を右クリックして「追加」を選択し、続いて「新しい項目」、次に最上段の「クラス」を選び名前をつけて追加する。//ここではOkodukaiと入力した(これで新しいクラスはOkodukai.csとなる)。

f:id:yasui_swift:20201124074302p:plain



f:id:yasui_swift:20201124074331p:plain

クラスを設定したら、メソッドで使用する変数の初期値を定義する。

次にメソッドを作る。ここでメソッド名を、

public void Gamen3( ) //ここでも( )のうしろには;はつけない

とした。

次に配列の宣言である。多次元配列の初歩なので簡単のために3組 × 2要素の配列で学習した。

 

すでに記録した一次元配列の作り方では多次元配列は作れない。コードの書式(というか文法か?)は、

string[ , ] hairetsumei = new string[n,m]{{"ここ","そこ"},{"どこ","あそこ"},{"ほれ","あれ"}};

//nは要素の組数、mは一組のなかの要素数。この場合はnが3,mが2となる//。要素は波括弧でくくり、全体も波括弧でくくる。最後に;をつける。

 

繰り返し処理のforeachは2次元の場合は配列の[0,0],[0,1],[1,0],[1,1]・・・の順に一つのデータとして扱われる。

ここで文字列二次元配列では

foreach(string in Hairetumei)

{

}

として配列の要素を順番に呼び出す。一組の要素をそろって呼びだすことができるのだろうがまだ不明なので、苦労した。if文で奇数番目と偶数番目を判別するめんどくさい方法でしかいまのところできない。if文は簡単だが、括弧の使い方が独特。

if (      ) //( )のあとには;はつけないので注意。

{ 条件1}

else

{ 条件2 }

 

最後にProgrma.csのメインメソッドにお小遣い画面の表示のための新たなインスタンスをつくり画面表示ができるようにする。//以下をProgram.csに追加。

Okodukai okodukai = new Okodukai( );

okodukai.Gamen3( );

 

f:id:yasui_swift:20201124074431p:plain

f:id:yasui_swift:20201124074459p:plain

これでなんとか目的を達成(上段の画面参照)。文字列の改行の設定に頭を悩ました。単純なことなのにずいぶんと時間がかかってしまった。でも目的である、一行に名前と額を表示すること、ができたのでよしとする。ベテランからみればアホなことしているなあと笑われるだろうが、独学なのでしょうがない。

(いろいろ行事や仕事があってなかなか学習が進まないが、なんとか初歩の初歩は達成したように思う。これで、ようやくつぎのテーマごとの学習に進める)