c#中out参数的用途是什么

13 .net c# parameters

你能告诉我out参数的确切用法吗?

相关问题:
ref和out有什么区别?(C#)

jjn*_*guy 17

良好使用out参数的最佳示例是TryParse方法.

int result =-1;
if (!Int32.TryParse(SomeString, out result){
    // log bad input
}

return result;
Run Code Online (Sandbox Code Playgroud)

使用TryParse而不是ParseInt删除处理异常的需要并使代码更加优雅.

out参数基本上允许来自方法的多个返回值.


Kir*_*tan 6

方法参数上的out方法参数关键字使方法引用传递给方法的同一变量.当控制传递回调用方法时,对方法中的参数所做的任何更改都将反映在该变量中.

当您希望方法返回多个值时,声明out方法很有用.使用out参数的方法仍然可以返回值.一个方法可以有多个out参数.

要使用out参数,必须将参数显式作为out参数传递给方法.out参数的值不会传递给out参数.

作为out参数传递的变量无需初始化.但是,必须在方法返回之前为out参数指定一个值.

一个例子:

using System;
public class MyClass 
{
   public static int TestOut(out char i) 
   {
      i = 'b';
      return -1;
   }

   public static void Main() 
   {
      char i;   // variable need not be initialized
      Console.WriteLine(TestOut(out i));
      Console.WriteLine(i);
   }
}
Run Code Online (Sandbox Code Playgroud)


rah*_*hul 3

http://msdn.microsoft.com/en-us/vcsharp/aa336814.aspx

Out 参数是仅输出参数,这意味着它们只能从函数传回值。我们通过在参数数据类型前面加上 out 修饰符来创建“out”参数。当传递“out”参数时,仅将未分配的引用传递给函数。

using System;
class ParameterTest
{
 static void Mymethod(out int Param1)
 {
  Param1=100;
 }
 static void Main()
 {
  int Myvalue=5;
  MyMethod(Myvalue);
  Console.WriteLine(out Myvalue);             
 }
}
Run Code Online (Sandbox Code Playgroud)

由于“out”参数的值被传递回调用部分,因此上述程序的输出将为 100。笔记

即使在调用部分中,修饰符“out”也应该位于传递的参数之前。在给函数赋值之前,不能在函数内使用“out”参数。在方法返回之前,应为“out”参数分配一个值。

  • out 参数不应该在 MyMethod 调用上而不是 Console.WriteLine 上吗? (2认同)