Я пытаюсь реализовать "return if" / "return value if" без случая else, так как я хочу только вернуть или вернуть значение, если условие действительно.
Я знаю, что есть if (condition) return;
или if (condition) return value;
, но я хочу, чтобы код был немного чистым, и было бы неплохо иметь этот синтаксис, поскольку он более читабельен.
Я слышал с roslyn, это возможно и прочитал вопрос с его ответами здесь: Есть ли способ реализовать пользовательские языковые функции на С#?, но у меня нет подсказки как его реализовать.
Итак, код будет примерно таким:
public class Testclass
{
public static void Main(String[] args)
{
Testclass t = new Testclass();
t.TestMyClassWithVoid();
bool success = t.TestMyClassWithInt(3) == 3;
bool fail = t.TestMyClassWithInt(2) == 2;
}
public void TestMyClassWithVoid()
{
int value = GetValueFromSomeWhere();
return if value == 3;
DoSomeOtherStuffSinceValueIsNotThree();
}
public int TestMyClassWithInt(int value)
{
return value if value == 3;
DoSomeOtherStuffSinceValueIsNotThree();
return -1;
}
}
любая идея, как я мог это решить? Я начал пробовать с Roslyn.Compilers.CSharp
-namespace, но я не знаю, как начать реализацию.