我有以下内容:
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)
...但我收到一个错误:
此一元运算符的参数类型必须是包含类型
有任何想法吗?
我的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) 有办法检查我是否在一系列旗帜中有旗帜?
例:
[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
拥有这条线:
this.button1.Click += this.button2.Click += (s, e) => MessageBox.Show("Test");
Run Code Online (Sandbox Code Playgroud)
为什么这条线不起作用
无法隐式转换
void为System.EventHandler
我们需要再多做一行来做这件事吗?但想象一下,如果我们有20个按钮
this.button1.Click += this.button(n).Click += MessageBox.Show("Test");
Run Code Online (Sandbox Code Playgroud)
我知道你会说什么:
您可以为每个按钮执行for(each)和...
但如果我需要选择我想要的按钮呢?
那么,为什么第一行代码不起作用,并存在这样的事情(以不同的方式写)