小编Joe*_*Fan的帖子

为什么我不能做?=在C#中?

我经常发现自己在做:

foo = foo ?? x;
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样做:

foo ??= x;
Run Code Online (Sandbox Code Playgroud)

编辑:我知道这不是语言的一部分......我的问题是"为什么不"?我发现重复"foo"的必要性令人不愉快并且可能容易出错.它看起来像丑陋一样:

foo = foo + x;
Run Code Online (Sandbox Code Playgroud)

c# language-features

16
推荐指数
7
解决办法
1476
查看次数

确保每个控制器方法都有一个ValidateAntiForgeryToken属性?

是否有任何方法可以集中执行每个操作方法必须具有"ValidateAntiForgeryToken"属性?我认为必须通过扩展一个"路由"类来完成.

编辑:或者也许在应用程序启动时做一些反思?

security asp.net-mvc

16
推荐指数
3
解决办法
7247
查看次数

Ctrl-W停止工作

我安装了Resharper,不知何故CtrlW不再"扩展选择".我尝试将它分配给工具 - >选项 - >键盘中的Global/Resharper.ExtendSelection,但它仍然只选择一个单词.

resharper

16
推荐指数
3
解决办法
5655
查看次数

解释Perl"序言"的狡猾

Perl手册描述了一个完全不同的构造,它可以在任何csh,sh或Perl下工作,如下所示:

eval '(exit $?0)' && eval 'exec perl -wS $0 ${1+"$@"}'
    & eval 'exec /usr/bin/perl -wS $0 $argv:q'
    if $running_under_some_shell;
Run Code Online (Sandbox Code Playgroud)

确实狡猾......有人可以详细解释一下这是如何运作的吗?

shell perl csh

14
推荐指数
2
解决办法
1907
查看次数

"分离所有"vs"停止调试"

在Visual Studio 2008中使用"附加到进程"功能时,"分离所有"和"停止调试"之间有什么区别?

debugging visual-studio-2008 visual-studio

12
推荐指数
1
解决办法
7909
查看次数

Enum.ToString()已弃用?

当我在Visual Studio中键入.ToString()一个Enum类型时,Intellisense会显示一条"穿透"线ToString()(尽管它构建并且工作正常).它似乎表明Enum.ToString()在某种程度上被弃用了.这是真的?如果是这样,为什么?

替代文字

c# resharper enums deprecated

12
推荐指数
1
解决办法
3910
查看次数

警告:GDB:设置控制终端失败:参数无效

我在Ubuntu上使用Qt Creator来开发C.每当我使用调试器运行时,我都会收到消息warning: GDB: Failed to set controlling terminal: Invalid argument.即使使用hello world程序也会发生这种情况 我怎么解决这个问题?

linux debugging ubuntu qt gdb

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

默认情况下,在Template Toolkit中转义HTML

我可以以某种方式配置模板工具包,以便:

[% foo %]
Run Code Online (Sandbox Code Playgroud)

做你现在需要说的话:

[% foo | html %]
Run Code Online (Sandbox Code Playgroud)

也就是说,转义HTML foo?并做一些其他事情,如:

[% foo | noHtml %]
Run Code Online (Sandbox Code Playgroud)

如果我想逃?

perl template-toolkit

12
推荐指数
2
解决办法
1872
查看次数

如何防止CruiseControl.NET中的并发构建?

我们在CruiseControl中有几个项目,我注意到通常有两个或更多项目同时建设.这似乎导致了冲突.通常,构建失败,如果我查看原因,它无法访问某个文件,如果我等到其他构建完成,我可以强制构建失败的构建,它将成功.

如何配置CC,以便在它们相互冲突时不会同时运行构建?

cruisecontrol.net

11
推荐指数
2
解决办法
2374
查看次数

避免重复接口的默认值

有时候,我有默认参数的接口,我想从调用实现方法实现类(除了从外面它).我也想使用它的默认参数.

但是,如果我只是按名称调用方法,则不能使用默认参数,因为它们仅在接口中定义.我可以在实现方法中重复默认规范,但这是不可取的,因为DRY和所有这些都需要(特别是编译器不会检查它们实际上是否与接口的默认值匹配!)

我通过引入所谓的构件解决这个_this因为这是相同的this,除了它被声明为接口类型.然后当我想使用默认参数时,我用方法调用_this.这是示例代码:

public interface IMovable
{
    // I define the default parameters in only one place
    void Move(int direction = 90, int speed = 100);
}

public class Ball: IMovable
{
    // Here is my pattern
    private readonly IMovable _this;

    public Ball()
    {
        // Here is my pattern
        _this = this;
    }

    // I don't want to repeat the defaults from the interface here, e.g.
    // public void Move(int direction = …
Run Code Online (Sandbox Code Playgroud)

c#

11
推荐指数
2
解决办法
202
查看次数