Gli array sono immutabili; ciò significa che dopo che un array viene istanziato staticamente:
int[] ar=new int[2]; int[] ar2=new int[]{1,4,6,2,3};
Array.Resize(ref ar,10);
Una property interessante di un qualsiasi array è la SyncRoot. Essa server per fare il lock sull'array, siccome di default gli array non sono thread-safe, perciò:
lock(ar.SyncRoot) { //codice }
ParamsParams è una parola chiave che, nell signature di un metodo, sta ad indicare "questo parametro può in realtà essere, dalla prospettiva del chiamante, da 1 a N parametri successivi" dove N è la dimensione della struttura che segue la parola params. Sotto un esempio:
void Caller() { Called(1); //valida, utilizza solo il primo parametro Called(1, 2); //manda un array di un elemento (2) al chiamato Called(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); Called(1, new int[] { 10, 20, 30 }); //posso passare direttamente un array } void Called(int a, params int[] array) { } void Called2(params int[] array, int a) { //errata, params deve essere l'ultimo parametro }