Я начинающий кодер, сейчас я изучаю C#, и мне было интересно, можно ли использовать Console.ReadLine() внутри заданной части свойства, а затем использовать его как метод для чтения пользовательского ввода, как показано ниже:Использовать console.ReadLine() внутри свойства set
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();' в свойстве «набор» будет легче получить значение от пользователя и не придется переписывать эту часть:»
Console.WriteLine("Please enter Employee ID:");
this.empID = int.Parse(Console.ReadLine());
каждый раз, когда я буду просить у пользователя ввод. Но теперь я понимаю, почему его не следует использовать.
Еще раз благодарю вас за ответы и приятный день!
Вариант №2 является лучшим. Первый вариант - это доступ к 'get' (который не определен), поэтому вместо этого вы получите ошибку. Хотя вы можете сделать что-то вроде 'mployee1.EmployeeID = 1;' вместо этого, где '1' просто будет выброшен, и ваше приглашение появится и примет значение, это действительно плохой дизайн. – tnw
Я бы честно использовал get и set, а затем проанализировал значение, исходящее из настройки свойства, для простого примера того, что я говорю о проверке этой предыдущей публикации http://stackoverflow.com/questions/22262312/trouble- set-my-setter-using-console-readline – MethodMan
Первый вариант просто очень странный ... ИМО это труднее читать, так как ваш код 'Main' выглядит так, как будто ничего не делает (хотя это не так), что делает вас Посмотрите куда-нибудь еще за небольшим количеством понимания. Если бы я не дал вам никакого контекста и сказал «myClass.SomeProperty;», что бы вы подумали, что он делает? Вы можете только догадываться. –