Dans l'objet CLR .net est la base pour tous les objets de classe, mais pas les types de base (par exemple, int, float, etc.). Comment puis-je utiliser des types de base comme Object? I.e. Comme Boost.Variant?Comment puis-je implémenter des types de variantes dans le CLR/Managed C++?
E.g. comme: -
object intValue(int(27));
if (intValue is Int32)
...
object varArray[3];
varArray[0] = float(3.141593);
varArray[1] = int(-1005);
varArray[2] = string("String");
Ceci est en .net 2.0. Je pense que la version 3.0 est plus dynamique, alors peut-être que c'est possible, mais je n'ai que VS2005 qui ne peut pas utiliser .net 3.0. – Nick
C# 3.0 est ce que vous pensez, et ce n'est pas vraiment plus dynamique. Le mot clé "var" que vous avez vu ne crée pas de variantes, seulement des types déduits. var i = 1; fait toujours "i" un int. –
@Nick: 3.0 n'est pas plus dynamique que 2.0; C# 3.0 a "var", mais ce n'est pas "variant" - c'est "variable", ce qui signifie "infer le type automatiquement". Il est encore typé statique. C# 4.0 introduit "dynamique" –