gpt4 book ai didi

c# - 当我尝试将字符串转换为 int 时,为什么 TryParse() 不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 20:50:30 25 4
gpt4 key购买 nike

我是初学者,我的家庭作业涉及结构,我也在使用 Visual Studio 2017。

我创建了一个结构,现在我正在尝试将文本框的输入分配给所创建结构实例的字段。我正在尝试将文本框中的字符串分配给我创建的结构中 int 数据类型的字段。

当我尝试使用 TryParse() 方法从文本框中转换字符串时,它不起作用。 VS 告诉我名称“varName”在当前上下文中不存在。这是什么意思?我该如何解决这个问题?

     enum Month
{
January, February, March, April, May, June, July, August, September, October, November, December
}

struct Person
{
public string name;

public string jobTitle;

public Month month;

public int day;

public int year;
}

private void submitButton_Click(object sender, EventArgs e)
{

Month month = (Month)Enum.Parse(typeof(Month), monthDropDown.Text);
Person user;

user.name = nameTextBox.Text;
user.jobTitle = jobTitleTextBox.Text;
user.month = month;
user.day = int.TryParse(dayTxtBox.Text, out day); //here I'm trying to use the TryParse method but it gives me the error the name 'day' doesn't exist in the current context
user.year = int.TryParse(yearTextBox.Text, out year); //here I'm trying to use the TryParse method but it gives me the error the name 'year' doesn't exist in the current context
}

最佳答案

int.TryParse方法尝试将字符串解析为int。它可能会失败。所以它返回一个int。它返回一个 bool 来表示解析是否真的成功了。因此,您需要为结果不能用作 int 做好准备:

if(int.TryParse(dayTxtBox.Text, out var day))
{
user.day = day;
}
else
{
/// put code here to handle what should happen if user entered "hello" for example
}

或者,如果这是家庭作业,并且您的类(class)中尚未涵盖其中的一些概念,您可以简化它并假设用户永远不会犯错并且始终输入正确的数字(警告:不是现实生活场景) :

user.day = int.Parse(dayTxtBox.Text);

关于c# - 当我尝试将字符串转换为 int 时,为什么 TryParse() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55877572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com