告诉resharper使用string.Format在C#中生成ToString?

时间:2016-01-19 13:43:50

标签: c# resharper

目前resharper使用字符串插值(即$"Member: {Member}")在C#中生成ToString。

是否可以对其进行修改,以便使用string.Format代替string.Format("Member: {0}",Member))

3 个答案:

答案 0 :(得分:1)

ReSharper>选项>代码检查+检查严重性> C#> "语言使用机会" > "使用字符串插值表达式"。将其更改为"不显示"。

答案 1 :(得分:0)

我在Resharper 2016.1中偶然发现了同样的问题

对我而言,它有助于将插入符号放在字符串连接中的+运算符上并点击Alt+Enter。然后它列出了一个重构string.Format的选项。将插入符号放在字符串上不起作用。在这种情况下,该选项将不可用。

这必须是最近的更改,因为我经常出于本地化原因使用该重构。

答案 2 :(得分:-1)

可能值得查看Fody.ToString项目,它可以在使用IL编织构建后自动创建ToString方法的重载:

您的密码:

[ToString]
class TestClass
{
    public int Foo { get; set; }

    public double Bar { get; set; }

    [IgnoreDuringToString]
    public string Baz { get; set; }
}

转换为:

class TestClass
{
    public int Foo { get; set; }

    public double Bar { get; set; }

    public string Baz { get; set; }

    public override string ToString()
    {
        return string.Format(
            CultureInfo.InvariantCulture, 
            "{{T: TestClass, Foo: {0}, Bar: {1}}}",
            this.Foo,
            this.Bar);
    }
}

检查出来,正确的节省时间 - https://github.com/Fody/ToString