我创建了以下课程:
public static class Current
{
public static class User
{
public static int UserID { get; set; }
public static string UserName { get; set; }
public static List<UserRole> Role { get; set; }
}
public static class UserRole
{
public static int RoleID { get; set; }
public static string RoleName { get; set; }
}
}
但它会给我一个错误:在这一行
public static List<UserRole> Role { get; set; }
错误1'Framework.Security.Current.UserRole':静态类型不能用作类型参数
答案 0 :(得分:8)
这与您尝试使用该类的位置无关 - 它与您不能将静态类用作类型参数这一事实有关。鉴于您无法创建静态类的实例,List<UserRole>
如何才能有用?
我强烈怀疑那些类不应该是静态类开始 - 为什么你想要它们呢?
(还不清楚为什么它们应该是嵌套类,但这是另一回事。)
答案 1 :(得分:2)
我明白你要做什么。 (虽然你对它有点错误。)唯一的静态类应该是User,它们不应该是嵌套的。您的设计还存在一些其他问题,但最终每个人的工作方式都不同。
这是在静态类中拥有List的一种方法。
public static class CurrentUser
{
public static int UserID { get; set; }
public static string UserName { get; set; }
public static List<UserRole> Role()
{
//Call another class with method to fill the list
AnotherClass _anotherClass = new AnotherClass();
return _anotherClass.Roles();
}
}
然后有一个非静态的UserRole
public class UserRole
{
public int RoleID { get; set; }
public string RoleName { get; set; }
}
从中检索数据的类应该包含填充List
的方法 public class AnotherClass
{
public List<UserRole> Roles()
{
List<UserRole> outList = new List<UserRole>();
//Fill the List with your UserRoles
foreach (object MyData in MyDataList)
{
UserRole myRole = new UserRole();
outList.Add(myRole);
}
return outList;
}
}
答案 2 :(得分:0)
此处的问题是您不能将UserRole用作List的类型。 因为它是静态类,所以它不会真正有意义。列表由作为类实例的对象组成。没有静态类的实例。
你应该重新考虑你的设计,你有一些严重的缺陷。