Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:检查字符串的正确方法?_C#_.net - Fatal编程技术网

C#:检查字符串的正确方法?

C#:检查字符串的正确方法?,c#,.net,C#,.net,我目前正在做一个项目,我在多个课程中看到过这一行 int.Parse(race); // to trigger any possible errors 现在,我猜他们这样做是为了抛出任何可能的错误,但我不认为这是一个好方法来做这样的事情,我也不知道如何改进它 我想知道是否有一位来自C#专业背景的人能给我一些处理此类事情的见解,以及他们将如何处理它?如果让异常在输入字符串不是有效整数时冒泡是有意义的,那么您可以按原样继续。但是,如果调用代码的其他地方不需要异常详细信息,那么使用TryParse将

我目前正在做一个项目,我在多个课程中看到过这一行

int.Parse(race); // to trigger any possible errors
现在,我猜他们这样做是为了抛出任何可能的错误,但我不认为这是一个好方法来做这样的事情,我也不知道如何改进它


我想知道是否有一位来自C#专业背景的人能给我一些处理此类事情的见解,以及他们将如何处理它?

如果让异常在输入字符串不是有效整数时冒泡是有意义的,那么您可以按原样继续。但是,如果调用代码的其他地方不需要异常详细信息,那么使用
TryParse
将是更好的选择

C#7之前:

截至7世纪末:


依靠异常来处理工作流程是个坏主意。当你可以避免一个选择时,你应该这样做。例外是——很好——例外,没有什么规律可言。但是,我们需要知道一个更好的方法,我们需要知道你的输入数据实际上是什么,你认为是一个有效的字符串,什么是无效的。除了以上我所说的,这个问题大部分是基于意见的,或者至少是广泛的,因为我们不知道你所期望的和你的数据是什么。因此,我们无法确定什么是正确的甚至更好的方法。我的数据是字符串数组的字符串。欢迎使用So。请阅读并根据最小工作示例修改问题。如果不发布您的代码,您将面临删除问题的风险。用你所说的线索和错误代码。。。人们更愿意帮助你,这样双方都可以学习。享受吧;-)假设您想检查字符串是否为整数,则以下搜索会带来链接重复。如果你只是想聊聊不同的错误处理方法,那么这不是正确的地方,问题应该以“基于意见”的方式结束。从问题中,我猜OP认为一个数字是无效的,因为它应该“触发”一个错误。@Himbrombere编辑以进一步澄清。我问的问题更多,而不是如何检查它,更确切地说,在if块内部应该做什么,更好的方法是什么,抛出异常、写入控制台或其他不同的方法。@u526410如果该方法无法正确处理异常,则让它冒泡到调用代码,如果无法处理,则让它冒泡到可以处理的位置。至于是写控制台,还是其他的东西取决于你在处理什么。
int result;
if (int.TryParse(s, out result))
{
    // valid int
}
else
{
    // not valid int
}
if (int.TryParse(s, out int result))
{
     // valid int
}
else
{
     // not valid int
}