前提・実現したいこと
c#勉強で詰まったので質問させてください.
いつもお世話になります。
以下のプログラムでクラスnyuryokuの中のstartのスコープの中についてです。
最終的にConsole.WriteLineで入力した物を表示したいのですが、引数の設定がうまくいきません。
よろしくお願いします
発生している問題・エラーメッセージ
「引数がありません」となり実行することができません。
該当のソースコード
c#
ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nameage
{
public class Information
{
// メンバ変数
public string UserName; // ユーザ名
// コンストラクタ public Information() { UserName = string.Empty; } } public abstract class Base { /// コンストラクタ protected Base() { } // 開始 public abstract void Start(); // 終了処理 public abstract void End(); // 名前入力 protected abstract void GetUserName(ref string userName); } class nyuryoku : Base { Information gi = new Information(); public override void Start() { GetUserName(ref gi.userName); //←試した事をそのまま反映しました } public override void End() { } //名前入力 protected override void GetUserName(ref string userName) { Console.Write("名前を入力してください:"); userName = Console.ReadLine(); } } class Program { static void Main(string[] args) { Information gi = new Information(); nyuryoku cr = new nyuryoku(); cr.Start(); Console.WriteLine("ようこそ{0}さん", gi.UserName); } }
}
試したこと
間違えてるとは思うのですが、「Information gi = new Information();」をクラスnyuryokuに作って、getUserNameの引数などに「ref gi.UserName」などとしてみましたが、表示される時に反映されておらず空欄となっていました・・・。
回答3件
あなたの回答
tips
プレビュー