第一次使用.net2.0的泛型

 

.net2.0的新特性---泛型,之前并没有怎么用的概念。今天看到了一段代码,豁然开朗。

立刻修改了自己的一些代码。

 1    public override string[] GetRolesForUser(string username)
 2
 3    {
 4
 5        Int  type = AdminsBLL.GetAdminTypeByName(username);
 6
 7        switch (type)
 8
 9        {
10
11            case 0:
12
13                if (isshopman)
14
15                    return new string[] "sysadmin""shopman" };
16
17                return new string[] "sysadmin" };
18
19            case 1:
20
21                if (isshopman)
22
23                    return new string[] "siteadmin""shopman" };
24
25                return new string[] "siteadmin" };
26
27            case 2:
28
29                if (isshopman)
30
31                    return new string[] "newsadmin""shopman" };
32
33                return new string[] "newsadmin" };
34
35            case 3:
36
37                if (isshopman)
38
39                    return new string[] "infoadmin""shopman" };
40
41                return new string[] "infoadmin" };
42
43            case 4:
44
45                if (isshopman)
46
47                    return new string[] "malladmin""shopman" };
48
49                return new string[] "malladmin" };
50
51            case 6:
52
53                if (isshopman)
54
55                    return new string[] "newseditor""shopman" };
56
57                return new string[] "newseditor" };
58
59            default:
60
61                if (isshopman)
62
63                    return new string[] "shopman" };
64
65                return new string[0];
66
67        }

68
69    }

70

这是一段RolesProvider的重载,后来想要给加多种角色,newseditor,这种角色跟shopman一样,可能是用户都可以申请的,那么再用这种方式去判断就很麻烦。用list<string>就很容易解决。

   

 1 public override string[] GetRolesForUser(string username)
 2
 3    {
 4
 5        List<string> userRoles = new List<string>();
 6
 7        if (ShopsBLL.IsShopman(username))
 8
 9            userRoles.Add("shopman");
10
11        if (AdminsBLL.IsNewsEditor(username))
12
13            userRoles.Add("newseditor");
14
15        int type = AdminsBLL.GetAdminTypeByName(username);
16
17        switch (type)
18
19        {
20
21            case 0: userRoles.Add("sysadmin"); break;
22
23            case 1: userRoles.Add("siteadmin"); break;
24
25            case 2: userRoles.Add("newsadmin"); break;
26
27            case 3: userRoles.Add("infoadmin"); break;
28
29            case 4: userRoles.Add("malladmin"); break;
30
31            defaultbreak;
32
33        }

34
35        return userRoles.ToArray();
36
37    }

38
posted @ 2007-12-18 23:06 yezizhe 阅读(46) 评论(0)  编辑 收藏

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印