冗余ToString代码?

Roy*_*mir 4 .net c# resharper

我在想 :

写这段代码:

 DataRow[] g = new DataRow[1] ;
 var t=new StringBuilder().AppendFormat("{0}", g[0]["aaa"].ToString());
Run Code Online (Sandbox Code Playgroud)

Resharper表现得像:(注意灰色)

在此输入图像描述

在此输入图像描述

3 questions please

1)remove ToString(),如何在不调用removed ToString()的情况下输出其显示字符串?

2)是否建议删除它,因为他已经在内部调用它?还是因为另一个原因?

3)不删除ToString(),它会调用两次吗?

Tim*_*ter 8

是的,它是多余的,因为AppendFormat(像String.Format)内部已经将它转换为字符串并且String.ToString总是多余的.

实际上它ICustomFormatter.Format在每个提供的参数上使用该方法.

就无用而言,这也是多余的.因此,即使不需要多次完成工作(AppendFormat也不会尝试将字符串转换为字符串),因此无论如何AppendFormat 都会毫无意义.因此,resharper试图在这里简化您的代码.