У меня есть веб-сервис и некоторые методы, и я НЕ хочу использовать этот код ниже, который прекрасно работает, потому что я намереваюсь использовать его в многопоточном приложении, где static (я читал) не является поточно-ориентированным.
Итак, теперь я просто повторил код, который находится в статическом методе returnisTrue () ниже, в теле моего метода веб-службы "myWebMethod", в точках // 1 из 3, // 2 из 3 и // 3 из 3. Это отлично работает, но приводит к раздутому коду.Есть ли более компактный способ, использующий функциональное программирование или анонимные методы, или что у вас есть, что я могу использовать?
Обратите внимание, что компилятор задохнулся, когда я попытался создать класс внутри метода ... который бы решил моюпроблема.
Как я уже сказал, у меня теперь нормально работает код, но он раздут, так как я повторяю "статический" метод returnisTrue три раза.
Спасибо.
РЕДАКТИРОВАТЬ: в ответ на некоторые вопросы о том, как сделать мой поток статического метода безопасным, с которым я, скорее, не беспокоюсь, но в интересах получения решения, которое я включаю ниже.
Весь этот код на стороне сервера ввеб-сервис
// I cannot unfortunately use this static method below--not thread safe
static private bool returnisTrue()
{
bool isTrue = false;
// do a bunch of stuff here
return isTrue;
}
public bool myWebMethod (string XYZ)
{
//public Class myClassReturnisTrue { … } //will not compile
bool isTrueOrNot1 = returnisTrue(); //1 of 3
/// more code here
bool isTrueOrNot2 = returnisTrue(); //2 of 3
///more code here
bool isTrueOrNot3 = returnisTrue(); //3 of 3
return isTrueOrNot1 && isTrueOrNot2 && isTrueOrNot3;
}
// here is the static method 'returnisTrue' it looks something like this:
static private bool returnIsTrue(string A, string B)
{
if (A.Length() < B.Length())
{
return true;
}
else
return false;
}