What's the difference between [Out] and out in

2019-07-07 04:18发布

问题:

This question already has an answer here:

  • Are P/Invoke [In, Out] attributes optional for marshaling arrays? 1 answer

I've seen both when looking up P/Invoke definitions... sometimes [Out] is used, and sometimes out... I'm assuming they're the same.

回答1:

They are the equivalent to each other when used in the context of P/Invoke - see OutAttribute.

You can apply the OutAttribute to value and reference types passed by reference to change In/Out behavior to Out-only behavior, which is equivalent to using the out keyword in C#.



回答2:

In addition to James answer, note that the out contextual keyword is used in two contexts:

  • As a parameter modifier in parameter lists

  • In generic type parameter declarations in interfaces and delegates

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



标签: c# out