• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#のメンバ変数について)

C#のメンバ変数について

このQ&Aのポイント
  • C#のメンバ変数について詳しく解説します。
  • プログラム中でenterName変数の受け渡しが上手くいかない問題を修正する方法を教えてください。
  • 総合勝敗を判定するResurutメソッドの動作について詳しく解説します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

static class Program { static string enterName; ここで、せっかく同一クラス内メンバーを作ったのに、 static void Main(string[] args) { string enterName = Console.ReadLine(); ここで、同じ名前のローカル変数を作った為です。 Console.WriteLine("{0}さんの総合勝利です", enterName); こいつが見てるのは、 static string enterName; こっち側です! 対処法、 string enterName2 = Console.ReadLine(); Console.WriteLine("ユーザ名を入力してください: {0}", enterName2); とやってから、enterName=enterName2;と代入してやるか、 Resurut();こいつにパラメーターを与えるようにする。 Resurut(enterName);などとして、 static void Resurut()ここを static void Resurut(string enterName)と書き換えて新規のローカル変数を作るなど。 #なお、スペルは、resultです。 あと、可能なら、関数の入り口は、voidとせず、 パラメーターをしっかり書いた方がいいです。 static void Resurut() こうではなく、 static void result(string enterName,int cntWin,int cntLose,int cntDraw) など! こうすることで、その関数が、プログラムの中でどんな変数を 必要としているのかが、他の人が見た時はっきりわかるので、 メンテナンスしやすく、バグが減ります。 ひとまず、原因は、 名前空間内で、クラスメンバー名をローカル変数名で上書きしたことが、原因です。

asai555666
質問者

お礼

ありがとうございます。

その他の回答 (1)

回答No.2

直接今回の件に関係ないけど、 else if (cntWin == cntLose) これいらないかも、 直前で、大きいか?小さいか?の残りがここなので、 すでに、同じってのは比較しなくてもわかってるので、 if 不要ですね。 しっかし、今の人って、覚えるのが早くていいね~ 質問者さんやたら、覚えるのが早いですよ。 私なんて結構苦労したのに~(独り言!) んじゃ!がんばってね!