Как я предполагаю, статические методы не должны быть написаны как первый фрагмент, или я ошибаюсь?
public static class ExtensionClass
{
private static SomeClass object1;
private static StringBuilder sb;
private static string DoSomething()
{
sb.AppendLine(object1.SomeValue);
}
public static string ExtensionMethod(this HtmlHelper helper, SomeClass _object1)
{
object1 = _object1;
sb = new StringBuilder();
DoSomething();
return sb.ToString();
}
}
Итак, я придумываю следующее:
public static class ExtensionClass
{
private static string DoSomething(ref StringBuilder _sb,SomeClass object1)
{
_sb.AppendLine(object1.SomeValue);
}
public static string ExtensionMethod(this HtmlHelper helper, SomeClass _object1)
{
SomeClass object1 = _object1;
StringBuilder sb = new StringBuilder();
DoSomething(ref sb,_object1);
return sb.ToString();
}
}
Является ли этот последний фрагмент безопасным для многопоточности? Это должен быть метод расширения, поэтому он не может быть нестатическим. Или есть лучший способ передать нестатический объект в статическом методе?