Die Angabe von default-array-Werte in einer optionalen array-parameter
Optionale Parameter verlangen, default-Werte, aber ich kann nicht scheinen, weisen Sie eine Standard-array, um eine optionale array-parameter. Zum Beispiel:
Optional ByVal myArray As Long() = Nothing ' This works
Jedoch
Optional ByVal myArray As Long() = New Long() {0, 1} ' This isn't accepted.
Die IDE sagt mir, dass ein "konstanter Ausdruck erforderlich" statt New Long() {0, 1}
.
Gibt es einen trick, um die Zuweisung einer default-array mit Konstanten, oder ist es nicht erlaubt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht ein "konstanter Ausdruck" ist ein Ausdruck, dass vollständig zur Kompilierzeit ausgewertet und erzeugt einen einfachen Wert, der gespeichert werden kann in den Metadaten der assembly. Verwendet werden, später, in anderer code, der macht den call. Optionale Werte abgerufen werden, die zur Kompilierzeit, nicht zur Laufzeit ausschließlich ein compiler-feature.
Den Neue Betreiber muss zur Laufzeit ausgeführt werden und erfordert code, dies zu tun. Und ist daher nicht ein konstanter Ausdruck. Die einfache Lösung ist zu verwenden, Nichts und setzen Sie den code in der Methode body: