如果方法返回一个值, 该方法通常声明返回类型, 并返回结果。 如果方法返回多个值,可能类型还不同,该怎么办呢?
这有不同的选项。
- 声明类和结构, 把应该返回的所有信息都定义为该类型的成员。
- 使用元组类型。(元组后面会有专门的章节来讲)
- 使用 out 关键字。
下面的例子使用通过 Int32 类型定义的 Parse 方法。 ReadLine 方法获取用户输入的字符串。
string input = ReadLine();
int n = int.Parse(input);
Console.WriteLine(string.Format("n: {0}", n));
在真实操作下, 用户并不总是输入希望他们输入的数据。 如果用户没有输入数字,就会抛出一个异常。 当然可以捕获异常,并相应地处理, 但正常情况下不这么做。
要处理类型错误的数据, 更好的方式是使用 Int32类型的另一个方法 : TryParse。 TryParse 声明为无论解析成功与否, 都返回一个bool类型。 解析的结果(如果成功) 使用 out 修饰符返回一个参数:
public static bool TryParse(string s, out int result);
使用 out 参数, 变量不需要预先初始化, 变量在方法中初始化。 out关键字需要在调用方法时提供, 而不仅仅在声明方法中提供:
string input = ReadLine();
int result;
if(int.TryParse(input, out result))
{
Console.WriteLine(string.Format("result: {0}", result));
}
else
{
Console.WriteLine("not a number");
}