TryParse()返回什么值?

Ila*_*a S -1 c# tryparse

我正在阅读C#计算机编程基础知识

string str = Console.ReadLine();
int Value;  
bool parseSuccess = Int32.TryParse(str, out Value);
Console.WriteLine(parseSuccess ? "The square of the number is " + (Value * Value) + " . "  : "Invalid number!" );
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,在第三行bool parseSuccess = Int32.TryParse(str, out Value);,Int32.TryParse()它不会返回int值吗?怎么会这样bool?这个关键字到底out意味着什么?

Nas*_*ine 6

Int32.TryParse 返回一个布尔值,指示解析是否成功(如果字符串包含非数字字符,则转换将失败).

out 表示参数是通过引用传递的(这意味着传递给TryParse函数的是变量的内存地址).

  • @IlayaRajaS C#实际上有两种参考参数.一个由`ref`关键字表示,另一个由`out`表示.编译器保证out参数由被调用方法明确赋值; 在调用方法之前,编译器必须将作为ref参数传递的变量明确赋值.在C#中,只有不安全的代码才允许使用`&`运算符. (3认同)
  • 我想不同的语言,不同的语法. (2认同)
  • @IlayaRajaS C#是一种托管内存语言,但在不安全的环境中具有某些非托管功能.`out`和`ref`只是`&`的安全版本,C#也可以在不安全的代码中使用 - 两者在保证方面有很大不同,即使它们有效地转换为几乎相同的机器代码.除此之外,C#试图避免使用神秘的操作符 - 任何具有合理名称的东西都会有名称.请注意,虽然C#强制执行`ref`和`out`作为具有不同用法的单独事物,但基础IL*实际上并不强制执行`out` - 遗憾的是它就像`ref`. (2认同)