Si Myobject
es una matriz entonces
Myobject [i] += Myobject [j];
debería funcionar siempre que el operador +
se ha definido para el tipo.
Como Myobject
es de tipo de objeto esta fallará con el error:
Operator '+' cannot be applied to operands of type 'object' and 'object'
para obtener el tipo en tiempo de ejecución (un ejemplo artificial):
double a = 1.0;
double b = 2.0;
object a1 = a;
object b1 = b;
Type ta = a1.GetType();
Type tb = b1.GetType();
ta
y tb
están ajustados a " Doble".
ACTUALIZACIÓN:
Una palabra de advertencia por adelantado - lo que voy a sugerir es muy torpe (por decir lo menos)
Si usted tiene un número finito de tipos y son los tipos garantizado para ser el mismoSi es así, puede hacer lo siguiente:
Type test = Myobject[i].GetType();
if (test.Equals(typeof(double)))
{
(double)Myobject[i] += (double)Myobject[j];
}
y así sucesivamente.
Si los tipos no son iguales, es un poco más complicado.
Si usted tiene un número desconocido de tipos, entonces tendrá que esperar para C# 4.
O usted podría hacer con la reflexión como sugiere noldorin.
¿Cómo se declara la matriz de Myobject? – ChrisF
¿Está definido el operador '+' para el tipo de 'MyObject'? – Groo
objeto [] Myobject –