Bonjour a tous, et désolé pour le titre non explicite

J'ai une question qui me tarode l'esprit depuis quelques temps;

Tout d'abord, j'ai cherché en vain une methode qui permet de redimensionner un tableau d'objet tout en preservant ces valeurs. Si une fonction tels que celle ci existe, je suis preneur

En tout cas, voilà ce que j'utilise pour redimensionner un tableau d'objet:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
         public void Salarie_ReDim(int size)
	{
		DADSU_Salarie[] ArrayTemp = new DADSU_Salarie[size];
 
		if(size == Salaries.length) 
			return;
 
		for(int i = 0; i<(size<Salaries.length?size:Salaries.length); i++)
			ArrayTemp[i] = Salaries[i];
 
		Salaries = ArrayTemp;
	}
Cela marche tres bien, mais comme vous le voyez, chaque fonctions s'applique a un type de donnée bien distinct.

Or j'ai plusieurs type d'objet, et j'aimerai ne pas repeter ma fonction une fois par type d'objet. J'utilise donc cela, mais sa ne fonctionne pas:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
	public static Object[] ReDim (Object[] obj, int count)
	{
		Object[] ArrayTemp = new Object[count];
 
		if(count == obj.length) 
			return obj;
 
		for(int i = 0; i<(count<obj.length?count:obj.length); i++)
			ArrayTemp[i] = obj[i];
 
		return ArrayTemp;
	}
Lorsque j'utilise cela de cette façon:

Salaries = (DADSU_Salaries)Tools.ReDim(Salaries,Salaries.length+1);
Il compile puis me lance une exception "Invalid TypeCast"

Puis-je savoir pourquoi? Et encore mieux, quelqu'un a-t-il une reponse?

Merci d'avance!

PS: C'est un travail que je doit rendre en toute urgence