我运行了代码分析并得到了如下信息:
CA1822:Microsoft.Performance:'CreateIntervalString(TimeSpan)' 的 'this' 参数(在Visual Basic中为'Me')从未被使用。如果适用,将成员标记为静态(在Visual Basic中为Shared),或者在方法体或至少一个属性访问器中使用'this'/'Me'。
我的代码如下:
private string CreateIntervalString(TimeSpan timeSpan)
{
return timeSpan.ToString();
}
据我理解,因为CreateIntervalString
函数不使用类的任何成员,仅使用timeSpan输入,VisualStudio建议我将其标记为静态。
我的问题:
- 为什么将它标记为静态会提高性能?
- 我的函数是库的一部分,应该是线程安全的,将方法标记为静态是否会影响线程安全性?
- 我有另外一些仅使用输入而不使用类的任何其他成员的私有函数,但是对它们却没有出现同样的错误提示。
非常感谢!
示例:
以下方法会提供一个错误:
private string CreateIntervalString(TimeSpan timeSpan)
{
return timeSpan.ToString();
}
以下内容不包括在内:
private DateTime ParseDateString(string dateTimeString)
{
// the years,monthe,days,hours,minutes and secondes found by the dateTimeString input
return new DateTime(years, months, days, hours, minutes, secondes);
}