2

私は初心者のコーダーで、現在 c# を学んでおり、次のように、プロパティの設定部分内で Console.ReadLine() を使用して、ユーザー入力を読み取るメソッドのように使用できるかどうか疑問に思っていました。

class Employee
{
    protected int empID;
    public int EmployeeID
    {
        set
        {
            Console.WriteLine("Please enter Employee ID:");
            this.empID = int.Parse(Console.ReadLine());
        }
    }
    //more code here
}
class Program
{
    static void Main(string[] args)
    {
        Employee employee1 = new Employee();
        employee1.EmployeeID;
        //more code here
    }
}

または唯一のオプションは、次のように「メイン」で直接 Console.ReadLine() を使用することです。

class Employee
{
    protected int empID;
    public int EmployeeID { set; }
    //more code here
}
class Program
{
    static void Main(string[] args)
    {
        Employee employee1 = new Employee();
        employee1.EmployeeID = int.Parse(Console.ReadLine());
        //more code here
    }
}

すべての回答を事前にありがとうございます!


回答ありがとうございます。これがコードの書き方として間違っていることがわかり、その理由も理解できました。「Console.ReadLine();」を使用することで、「set」プロパティ内では、ユーザーから値を取得するのが簡単になり、この部分を書き直す必要がなくなります:

Console.WriteLine("Please enter Employee ID:");
this.empID = int.Parse(Console.ReadLine());

ユーザーに入力を求めるたびに。しかし、なぜそれを使用してはいけないのかがわかりました。
すべての回答に感謝します。良い一日を!

4

3 に答える 3

3
public class Employee
{
    public int EmployeeID { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Please enter Employee ID:");

        var empID = int.Parse(Console.ReadLine());

        var employee1 = new Employee
        {
            EmployeeID = empID
        };
    }
}

GettersSettersプロパティが保持する値を設定/返すためにのみ使用する必要があります。プライベート フィールドを作成し、異なるメソッドでそれらを設定することもできます。Console.ReadLine()ただし、クラスから呼び出すことはありません。クラスはエンティティの表現です。

于 2015-08-28T19:24:59.100 に答える