小编Sti*_*kly的帖子

有没有办法为枚举类型实现一元运算符?

我有以下内容:

MovingDirection.UP;
Run Code Online (Sandbox Code Playgroud)

我想用!运营商如下:

!MovingDirection.Up; // will give MovingDirection.Down
Run Code Online (Sandbox Code Playgroud)

(这是一个枚举)

我试过了:

public static MovingDirection operator !(MovingDirection f)
{
    return MovingDirection.DOWN;
}
Run Code Online (Sandbox Code Playgroud)

...但我收到一个错误:

此一元运算符的参数类型必须是包含类型

有任何想法吗?

c# enums operators unary-operator

8
推荐指数
1
解决办法
379
查看次数

使用Symfony2的role_hierarchy

我的role_hierarchy有一个很大的问题,

security:
    role_hierarchy:
        ROLE_ADMIN:[ROLE_USER,ROLE_AUTHOR,ROLE_MODERATOR]
        ROLE_SUPER_ADMIN:[ROLE_ADMIN,ROLE_ALLOWED_TO_SWITCH]
Run Code Online (Sandbox Code Playgroud)

有了它,如果我得到了SUPER_ADMIN角色,我将得到ROLE_AUTHOR,ROLE_MODERATOR,ROLE_USER和ROLE_ADMIN.但是我的问题是当我登录我的网站时,如果我检查了探查器,我可以看到我只得到了ROLE_SUPER_ADMIN,而不是其他角色,所以,你能帮助我吗?

我的观点(base.html.twig)

<h3>Blog</h3>
<ul class="nav nav-pills nav-stacked">
    <li><a href="{{ path('dom_home') }}">Home Page</a></li>
    {% if is_granted('ROLE_AUTHOR') %}
        <li><a href="{{ path('dom_add') }}">Add a post</a></li>
    {% endif %}
    {% if is_granted('IS_AUTHENTICATED_FULLY') %}
        <li><a href="{{ path('fos_user_security_logout') }}">Logout</a></li>
    {% else %}
        <li><a href="{{ path('fos_user_security_login') }}">login</a></li>
        <li><a href="{{ path('fos_user_registration_register') }}">register</a></li>
    {% endif %}
</ul>
Run Code Online (Sandbox Code Playgroud)

我的security.yml(app/config)

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        FOS\UserBundle\Model\UserInterface: sha512

    role_hierarchy:
        ROLE_ADMIN:       [ROLE_USER,ROLE_AUTHOR,ROLE_MODERATOR]
        ROLE_SUPER_ADMIN: [ROLE_ADMIN,ROLE_ALLOWED_TO_SWITCH]

    providers:
        in_memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] …
Run Code Online (Sandbox Code Playgroud)

security roles hierarchy role symfony

6
推荐指数
1
解决办法
2万
查看次数

HasFlag始终返回True

有办法检查我是否在一系列旗帜中有旗帜?

例:

[Flags]
Enum TestEnum
{
  ALIVE, DEAD, ALMOSTDEAD, HURT, OTHERS

}
// check if is alive and has been hurt
TestEnum aTest = TestEnum.ALIVE | TestEnum.HURT
bool aTest2 = aTest.HasFlag(TestEnum.ALIVE)
Run Code Online (Sandbox Code Playgroud)

a.Test.HasFlag即使没有TestEnum.ALIVE,总是返回true

c# enums

3
推荐指数
1
解决办法
1257
查看次数

在一个语句中设置多个事件处理程序

拥有这条线:

this.button1.Click += this.button2.Click += (s, e) => MessageBox.Show("Test");
Run Code Online (Sandbox Code Playgroud)

为什么这条线不起作用

无法隐式转换voidSystem.EventHandler

我们需要再多做一行来做这件事吗?但想象一下,如果我们有20个按钮

this.button1.Click += this.button(n).Click += MessageBox.Show("Test");
Run Code Online (Sandbox Code Playgroud)

我知道你会说什么:

您可以为每个按钮执行for(each)和...

但如果我需要选择我想要的按钮呢?

那么,为什么第一行代码不起作用,并存在这样的事情(以不同的方式写)

c# events c#-4.0

0
推荐指数
1
解决办法
702
查看次数

标签 统计

c# ×3

enums ×2

c#-4.0 ×1

events ×1

hierarchy ×1

operators ×1

role ×1

roles ×1

security ×1

symfony ×1

unary-operator ×1