C#中和out之间有什么区别?

我在查找P / Invoke定义时都看到了……有时使用[Out] ,有时候out ……我假设它们是相同的。

P/Invoke的上下文中使用它们时彼此相同 – 请参阅OutAttribute 。

您可以将OutAttribute应用于通过引用传递的值和引用类型,以将In / Out行为更改为Out-only行为,这相当于在C#中使用out关键字。

除了James回答之外,请注意out contextual关键字在两个上下文中使用:

  • 作为参数列表中的参数修饰符

  • 在接口和委托中的generics类型参数声明中

来源: http : //msdn.microsoft.com/en-us/library/t3c3bfhx.aspx