什么';[Out]和Out在C#中的区别是什么?

什么';[Out]和Out在C#中的区别是什么?,c#,out,C#,Out,我在查找p/Invoke定义时看到了这两种情况。。。有时使用[Out],有时使用Out。。。我假设它们是相同的。在p/Invoke的上下文中使用时,它们彼此等效-请参阅 您可以将OutAttribute应用于通过引用传递的值和引用类型,以将In/Out行为更改为仅Out行为,这相当于在C#中使用Out关键字 除James answer外,请注意out上下文关键字用于两种上下文: 作为参数列表中的参数修饰符 在接口和委托中的泛型类型参数声明中 来源:out和[out]都是等价的,都告诉编译器对

我在查找p/Invoke定义时看到了这两种情况。。。有时使用
[Out]
,有时使用
Out
。。。我假设它们是相同的。

p/Invoke
的上下文中使用时,它们彼此等效-请参阅

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


除James answer外,请注意out上下文关键字用于两种上下文:

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

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


来源:

out
[out]
都是等价的,都告诉编译器对象将在函数内部初始化。这里的答案错误,请看重复的答案。我想这里的答案是否正确取决于您对“等价”的定义有多宽松。向我建议,这些差异可能不应该被掩盖。应该注意的是,它们仅在P/Invoke和COM互操作中彼此等效,在其他情况下也不相同。@marceln为了清楚起见,我已经更新了。