嗨我怎么办下面的?
int z = 1;
string one = "pc";
string two = z.ToString();
//what goes here
Console.Write("Host One:\tSent-{0}\tSuccess-{1}\tFail-{2}", xxxxx.numepings, pc1.numepings_s, pc1.numepings_f);
Console.WriteLine();
所以在我的代码pc1
中是一个对象的实例,我可以在行//what goes here
中使用什么,然后代替xxxxx
,以便我可以从中调用实例concanatated字符串变量pc
和int 1
??
答案 0 :(得分:5)
基本上,你没有。你可以可能使用反射,但这是一个坏主意。相反,只要您想存储对多个对象的引用并通过某种键(无论是索引,名称等)来解决它们,您就应该使用集合。
所以不要:
Foo pc0;
Foo pc1;
Foo pc2;
...
你会:
List<Foo> pcs;
...
Foo pc = pcs[z];
答案 1 :(得分:0)
见这里:http://msdn.microsoft.com/en-us/library/1fce0hc8.aspx
// Create an instance of the SomeType class that is defined in this
// assembly.
var oh = Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().CodeBase, one + z /* as a full type name */);
// Call an instance method defined by the SomeType type using this object.
dynamic st = oh.Unwrap();
st.DoSomething(5);
您可以通过它的字符串名称来执行此类操作来创建对象 - 但是如果没有问题,则无法将其强制转换为特定类型。
你可以作弊,然后使用dynamic
。
编辑:对不起,这本来不太正确 - 而且我修复了我的例子。