2013-02-27 1 views
6

Sobald ich weiß, was das bedeutet, gibt es wahrscheinlich eine bessere Möglichkeit, diese Frage auszudrücken, aber ich weiß nicht, wo ich anfangen soll.C# Methodenparametersyntax - was bedeutet das?

Hier ist die Read-Methode für eine Stream:

public override int Read([In, Out] char[] buffer, int index, int count) { ... } 

That "In, Out" Bit - was ist es denn, was es tut, was heißt es?

+1

Ich bekomme den Zweck von ihnen in diesem Zusammenhang nicht. Werden sie nicht nur für p/invoke und Marshalling verwendet? Warum also sind sie auf einer normalen übergeordneten Methode? – CodesInChaos

Antwort

4

That "In, Out" Bit - was ist es denn, was es tut, was heißt es?

Sie sind parameter attributes.

In diesem Fall System.Runtime.InteropServices.InAttribute und System.Runtime.InteropServices.OutAttribute, die mit Code außerhalb der .NET-Laufzeit für Interop verwendet werden.

+0

Vielen Dank. Es würde sich lohnen, den Namen der Frage zu ändern, um ihn für die Menschen nützlicher zu machen, denke ich - irgendwelche Vorschläge? (Der Hokey-Cokey-Modifikator kommt mir in den Sinn ...) –