Non è possibile utilizzare parametri per qualsiasi parametro diverso da quello precedente ... questo fa parte di ciò che si lamenta.
Non è inoltre possibile utilizzare params
in un argomento di tipo. Questo non è solo per i delegati, ma in generale. Ad esempio, non è possibile scrivere:
List<params string[]> list = new List<params string[]>();
È possibile, tuttavia, dichiarare un nuovo tipo delegato , in questo modo:
delegate void Foo(int x, params string[] y);
...
Foo foo = SomeMethod();
foo(10, "Hi", "There");
Nota che la conversione metodo di gruppo dovrà corrispondere un metodo che prende una matrice di stringhe - non si poteva dichiarare SomeMethod come:
void SomeMethod(int x, string a, string b)
e si aspettano quanto sopra per lavorare, per esempio. Dovrebbe essere:
void SomeMethod(int x, string[] args)
(. Oppure potrebbe usare params
stesso, ovviamente)
fonte
2009-07-16 09:39:52