簡體   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