如何在C#中检查输入是字符串还是字节?

如何在C#中检查输入是字符串还是字节?,c#,.net,winforms,c#-6.0,C#,.net,Winforms,C# 6.0,我做了一个非常简单的程序,用户需要写下他的名字和年龄。然后弹出一个消息框,显示姓名和年龄。() 如何操作:如果年龄是一个字符串,则会弹出一个消息框,提示“年龄不是一个数字,用户需要重试”尝试以下操作: private void cmdSubmit_Click(object sender, EventArgs e) { var name = txtName.Text; int age; if(Int32.TryParse("txtAge.Text, out age))

我做了一个非常简单的程序,用户需要写下他的名字和年龄。然后弹出一个消息框,显示姓名和年龄。()

如何操作:如果年龄是一个字符串,则会弹出一个消息框,提示“年龄不是一个数字,用户需要重试”

尝试以下操作:

private void cmdSubmit_Click(object sender, EventArgs e)
{
    var name = txtName.Text;
    int age;
    if(Int32.TryParse("txtAge.Text, out age))
    {
        MessageBox.Show($"Your name is {name} and You're {age} years old.");
    }
    else
    {
        MessageBox.Show("Enter valid age");         
    }

}
请查看下面的链接以了解简要说明


尝试使用
NumericUpDown
控件,将最小值和最大值设置为一些合理的值,不要重新执行验证和解析

从技术上讲,转换没有问题,如果所有数据都有效,这将起作用

    private void cmdSubmit_Click(object sender, EventArgs e)
    {
      var name = txtName.Text;
      var age = Convert.ToByte(txtAge.Text);
      MessageBox.Show($"Your name is {name} and You're {age} years old.");
    }
有几种方法可以验证您的数据,下面是您可能希望使用的另一种方法

    private void cmdSubmit_Click(object sender, EventArgs e)
    {
      string name = txtName.Text;
      short age; //This is an Int16 with a range of -32,768 to +32,767
      short.TryParse(txtAge.Text,out age);
      string ageStatement = age == 0 ? "your age is unknown" : 
                                      $"you're {age} years old";
      MessageBox.Show($"Your name is {name} and {ageStatement}.");
锥虫

    short.TryParse(txtAge.Text,out age);

如果txtAge.Text中的字符串数据不是数字,则TryParse会将年龄(out参数)设置为0(零)

在有一个可拒绝无效输入的MaskedTextBox时读取。
    private void cmdSubmit_Click(object sender, EventArgs e)
    {
      string name = txtName.Text;
      short age; //This is an Int16 with a range of -32,768 to +32,767
      short.TryParse(txtAge.Text,out age);
      string ageStatement = age == 0 ? "your age is unknown" : 
                                      $"you're {age} years old";
      MessageBox.Show($"Your name is {name} and {ageStatement}.");
    short.TryParse(txtAge.Text,out age);