知识点-TryParse

141 阅读1分钟

int.TryParse(input, out int y) 是什么?

int.TryParse()C# 中用于安全转换字符串为整数 的方法。
它的完整语法是:

bool TryParse(string s, out int result)
  • s:要转换的字符串(输入)。

  • out int result:输出参数,存储转换后的整数。

  • 返回值bool 类型,表示转换是否成功:

    • 成功时,result 里存放转换后的整数,并返回 true
    • 失败时,result 设为 0,返回 false(不会抛异常)。

为什么用 out

out输出参数修饰符,表示该参数在方法内部被赋值,并返回给调用者。

  • out 允许在方法内对变量进行赋值,即使变量在方法调用前没有初始化。

  • TryParse() 需要返回两个信息:

    1. 转换是否成功(bool
    2. 转换后的整数值(int

    由于 C# 方法只能返回一个值,所以 out 允许它通过参数传递额外的返回值。

示例:

string input = "123";
if (int.TryParse(input, out int y))
{
    Console.WriteLine($"转换成功,y = {y}"); // 输出:转换成功,y = 123
}
else
{
    Console.WriteLine("转换失败,输入不是有效的整数");
}

int.Parse() 的区别

方法作用失败时行为推荐情况
int.Parse(s)转换字符串为整数抛出 FormatException输入一定是有效整数时使用
int.TryParse(s, out int result)尝试转换字符串为整数返回 false,不会抛异常用户输入时使用,防止崩溃

示例:

string invalidInput = "abc";

int y = int.Parse(invalidInput); // 这里会抛出 FormatException

VS

if (int.TryParse(invalidInput, out int y)) 
{
    Console.WriteLine($"转换成功,y = {y}");
}
else 
{
    Console.WriteLine("转换失败,输入不是整数"); // 安全处理,避免异常
}

总结

int.TryParse() 不会抛异常,适合处理用户输入。
outy 在方法内部赋值并返回给调用者。
优先使用 TryParse() 处理用户输入,避免 Parse() 可能导致的异常