2016-05-03 9 views
0

Ich bin neu in PowerShell. Ich möchte einige 10 Werte des Typs short von einer .NET-Funktion erhalten.Übergeben Sie ein PowerShell-Array an eine .NET-Funktion

In C# funktioniert es wie folgt aus:

Int16[] values = new Int16[10]; 
Control1.ReadValues(values); 

Die C# Syntax ist ReadValues(short[] values)

versucht, etwas wie folgt aus:

$Control1.ReadValues([array][int16]$Result) 

Aber nur Nullen in der Anordnung.

Dank

+0

Was meinen Sie mit „Aber nur Nullen in der Anordnung.“? Was ist der Wert von $ Ergebnis? –

+0

Ich frage mich auch, wie funktioniert es in C# ohne Rückgabewert, ref oder out? –

+0

Die Funktion ReadValues ​​gibt 10 Werte ungleich null zurück, das Array $ Result enthält jedoch nur Nullen. Ich denke, dass ich es total falsch mache oder vielleicht ist es nicht möglich? – user1187060

Antwort

1

In den Kommentaren Sie erwähnen:

Ich glaube, dass die C# Funktion

So ist die Methode Signatur ist ein ref wirklich:

ReadValues(ref short[] values) 

Zum Glück hat PowerShell einen [ref] Typ Beschleuniger rator für diese Art von Situation

# Start by creating an array of Int16, length 10 
$Result = [int16[]]@(,0 * 10) 

# Pass the variable reference with the [ref] keyword 
$Control1.ReadValues([ref]$Result) 

Weitere inforation finden Sie in der Hilfedatei about_Ref

Verwandte Themen