【发布时间】:2009-06-04 18:52:21
【问题描述】:
在 .net 中,CLR 对象是所有类对象的基础,但不是基本类型(例如 int、float 等)。如何使用 Object 等基本类型? IE。喜欢Boost.Variant?
例如喜欢 :-
object intValue( int(27) );
if (intValue is Int32)
...
object varArray[3];
varArray[0] = float(3.141593);
varArray[1] = int(-1005);
varArray[2] = string("String");
【问题讨论】:
-
这是在 .net 2.0 中。我认为 3.0 更具动态性,所以也许在那里是可能的,但我只有 VS2005,它不能使用 .net 3.0。
-
C# 3.0 是您所想的,它并不是真正的动态。您看到的“var”关键字不会创建变体,只是推断类型。变量 i = 1;仍然使“i”成为 int。
-
@Nick:3.0 并不比 2.0 更有活力; C# 3.0 有“var”,但这不是“variant”——它是“variable”,意思是“自动推断类型”。它仍然是静态类型的。 C# 4.0 引入了“动态”
-
对不起,我实际上必须在托管 C++ 中执行此操作。
标签: c# clr managed-c++ variant