TryParsing 属性的用户输入

TryParsing User Input for an Attribute

我似乎找不到答案的简单问题。本质上,这个对象的这个属性是一个 Char,我需要 TryParse 它以确保当用户输入某些内容时它不会抛出错误。我的老师没有教过我们一个getset(我想这就是所谓的?),所以我必须使用一个TryParse。我还有一个双精度和一个整数,但这不是重点。我知道我必须从这个开始,我试着做

employee1._gender = char.TryParse(InputUtilities.GetStringCharValue("Gender: "), out employee1._gender); 

它抛出一个布尔错误,这让我很困惑。我是 类 的新手,如果这是一个愚蠢的问题,我深表歉意。谢谢大家的帮助!

    employee1._gender = InputUtilities.GetStringCharValue("Gender: ");

您非常接近,您只是将 TryParse 返回的错误代码与将成为函数调用目标的 out 参数混淆了。这是一个简单的示例,请注意提供的任何字符都将被视为有效(即 Q):

    static void Main(string[] args)
    {
        Employee employee1 = new Employee();

        Console.Write("Gender: ");

        String userInput = Console.ReadLine();
        if (char.TryParse(userInput, out employee1.gender))
            Console.WriteLine("Ok, you specified: " + employee1.gender);
        else 
            Console.WriteLine("Not valid character: " + userInput); 

        employee1.Print();
    }

    public class Employee {
        public char gender = '?';

        public void Print() {
            Console.WriteLine("Gender is = " + gender);
        }
    }

一旦您了解 getter 和 setter 以进行 class 重构您的代码以将所有逻辑放在那里,这就是 OOP 封装的美妙之处。