C# out参数

如果方法返回一个值, 该方法通常声明返回类型, 并返回结果。 如果方法返回多个值,可能类型还不同,该怎么办呢?

这有不同的选项。

  • 声明类和结构, 把应该返回的所有信息都定义为该类型的成员。
  • 使用元组类型。(元组后面会有专门的章节来讲)
  • 使用 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");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值