此代码导致错误:type or namespace "index" could not be found.
foreach (var index in Model.UserAssets.Keys)
{
foreach (var asset in Model.UserAssets[index])
{
var val = asset as index.getType();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?是因为index不在范围内(虽然它应该是)?
该变量 index 是在范围上,但as 只允许一个类型:expr as T.
因此asset as index.getType(),编译器试图index像处理类型那样对待它,并且从不认为存在具有给定名称的变量.
尝试as对运行时类型信息进行强制转换(包括使用),例如包含在Type实例中,通常没有意义.为什么和替代方案,考虑