【发布时间】:2014-04-15 08:11:57
【问题描述】:
应该很简单,但事实并非如此。
这是我的代码:
string cases()
{
string ret = "";
string[] methods;
methods = [__traits(derivedMembers,mixin("Math"))];
foreach (string s; methods) ret ~= "case \"" ~ s ~ "\": return Math."~s~"(params);";
methods = [__traits(derivedMembers,mixin("OtherClass"))];
foreach (string s; methods) ret ~= "case \"" ~ s ~ "\": return OtherClass."~s~"(params);";
return ret;
}
string execute(string what, string[] params)
{
switch (what)
{
mixin(cases());
default: break;
}
return "";
}
我想做的事:
const string[] arrayWithClassNames = ["Math","SomeClass"];
foreach (string s; arrayWithClassNames)
{
methods = ...
foreach ...
}
相当简单吧?问题是它抱怨:
variable 's' cannot be read at compile time.
有什么想法吗?
【问题讨论】: