public int hash2(char carray[]) {int hash = 5381;for (int i = 0; i < carray.length; i++) {char d = carray[i];hash = ((hash << 5) + hash) + d & 0x00FF;hash = ((hash << 5) + hash) + d >> 8;}return hash;}

public virtual int Hash2(char[] carray){int hash = 5381;for (int i = 0; i < carray.Length; i++){char d = carray[i];hash = ((hash << 5) + hash) + d & 0x00FF;hash = ((hash << 5) + hash) + d >> 8;}return hash;}
