小编Ave*_*isG的帖子

一个可能的Resharper Bug或我只是遗漏了一些微妙的东西?

在这里,您可以看到ReSharper如何建议更改

在此输入图像描述

现在,您可以看到Resharper如何更改代码,但结果不正确,因为它正在新建一个类,为其上的属性赋值,然后返回一个没有该类的该类的全新实例.分配给它的价值.

在此输入图像描述

我在新关键字上有光标.按下Alt + Enter并选择名为"use object initializer"的选项.

这是ReSharper中可能存在的错误还是我在这里遗漏了一些东西?

c# visual-studio-2012 resharper-8.0

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

在建造建筑商时哪一个更有效?

注意:所有构建器仅用于单元测试.

所以我一直在创建构建器,因为我一直在创建它们,我已经开始注意到已经存在的其他一些构建器遵循一些不同的模式.

以为我在这里问哪一个更有效.

我这样做是这样的:

public class Builder
{
    public Builders()
    {
        SetDefaults();
    }

    private void SetDefaults()
    {
       // Setting my defaults
    }
}
Run Code Online (Sandbox Code Playgroud)

另一种方式:

public class Builder
{     
    public Builder WithDefaults()
    {
       // Setting my defaults
    }
}
Run Code Online (Sandbox Code Playgroud)

在我看来,第一个更有效,因为你只是创建你的构建器,它会自动为你做默认设置.

在另一种情况下,您必须显式调用WithDefaults方法来设置所有默认值,然后再继续构建它.

第二个似乎更容易出错,因为一些需要构建的对象如果没有设置所有字段,则会抛出null异常.

也许我错过了一些微妙的东西,所以我决定问你哪一个更有效的前进.

谢谢.

c# unit-testing builder default-value

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