繁体   English   中英

如何在静态类中创建静态类List属性

[英]how to create static class List property inside static class

我创建了以下课程:

       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':静态类型不能用作类型参数

这与您尝试使用类的位置无关-它与您不能将静态类用作类型参数的事实有关。 鉴于您无法创建静态类的实例, List<UserRole>怎么可能有用?

强烈怀疑这些类不应该从静态类开始-到底为什么要让它们成为静态类?

(也不清楚为什么应该嵌套类,但这是另一回事。)

我了解您要做什么。 (尽管您的做法有点错误。)唯一的静态类应该是User,并且不应嵌套。 您的设计还有其他一些问题,但最终每个人的工作方式都不一样。

这是在静态类中包含列表的一种方式。

        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; }      
        }

从中检索数据的类应包含一种填充列表的方法

            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;
            }

        }

这里的问题是您不能将UserRole用作列表的类型。 由于这是一个静态类,因此没有任何意义。 列表由作为类实例的对象组成。 没有静态类的实例。

您应该重新考虑您的设计,因为它存在一些严重的缺陷。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM