Wie explizit die Größe eines array-Parameters an eine Funktion übergeben
Ich habe eine Funktion, die einen parameter akzeptiert namens IV. Gibt es trotzdem, ich kann die explizite Angabe der Größe des Parameters IV 16 ?
public AESCBC(byte[] key, byte[16] inputIV)
{
//blah blah
}
Die oben ist, natürlich nicht arbeiten. Ist es möglich? Ich weiß, ich kann innerhalb der Funktion und eine exception werfen, kann aber sein das es in der Funktion definiert definition ?
- Sie würde erstellen Sie eine benutzerdefinierte Klasse für die.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man nicht, im Grunde. Als Jaroslav sagt, Sie könnten Ihre eigene Art - aber andere als die, sind Sie stecken mit nur eine Ausnahme zu werfen.
Mit Code-Verträge Sie Ausdrücken könnte dies in einer form, die die statische Prüfung konnte mit Hilfe:
Dann der static checker Ihnen sagen könnte, mit dem build, wenn er meinte, verletzen Sie möglicherweise den Vertrag. Dies ist nur mit der Premium-und Ultimate-Editionen von Visual Studio obwohl.
(Dennoch kann man die Code-Verträge ohne statische Prüfung mit VS Professional, aber Sie wird nicht die Verträge.)
Stecker: Derzeit ist der Code Contracts Kapitel aus C# in der Tiefe der 2. Auflage ist kostenlos erhältlich zum download, wenn Sie mehr Informationen wünschen.
CONTRACTS_FULL
Zusammenstellung-symbol (wenn nicht bereits definiert), da sonst dieContract.Requires
nicht kompiliert werden.Können Sie nicht angeben, die Größe der array-parameter bei der Deklaration der Methode, wie Sie entdeckt haben. Die nächste beste Sache ist zu prüfen, für die Größe und werfen eine Ausnahme:
Weitere option ist es, eine Klasse zu erstellen, die wraps
byte[16]
und pass durch.