C# 指定的强制转换无效。枚举
这段代码有什么问题,我也尝试了C# 指定的强制转换无效。枚举,c#,asp.net,C#,Asp.net,这段代码有什么问题,我也尝试了Enum.Parse,但没有成功 public enum RoleNames { Administrator, [Description("Personnel Security")] PrsonalSecurity, } foreach (RoleNames roleName in arRoles) //<<<error { if (IsCurrentUserInRole(roleName)) { re
Enum.Parse
,但没有成功
public enum RoleNames
{
Administrator,
[Description("Personnel Security")]
PrsonalSecurity,
}
foreach (RoleNames roleName in arRoles) //<<<error
{
if (IsCurrentUserInRole(roleName)) { return true; }
}
公共枚举角色名称
{
管理员
[说明(“人员安全”)]
公共安全,
}
foreach(arRoles中的RoleNames-roleName)//您能否发布代码的其余部分,因为下面的示例可以很好地工作:
public enum RoleNames
{
Administrator,
[Description("Personnel Security")]
PersonalSecurity
}
RoleNames[] testEnumArray =
{ RoleNames.Administrator, RoleNames.PersonalSecurity };
foreach (RoleNames en in testEnumArray)
{
// do something
}
根据错误消息,arRoles
不能是RoleNames
数组,因为强制转换失败
如果要迭代枚举定义,可以使用以下代码:
foreach (RoleNames type in Enum.GetValues(typeof(RoleNames))
{
// do something
}
张贴你的确切密码 有机会描述一下你的情况吗?你想在这里实现什么?你确定arRoles
是一个RoleNames列表吗?arRoles
的确切类型是什么?如果arRoles
仅包含RoleNames
,则此代码应该有效。但是因为它不是泛型的,所以不会出现编译时错误。arRoles是一个作为参数传递的RoleNames,我正在比较用户传递的内容以及arRoles是否在RoleNames中。有道理?