我正在研究 C#。我有以下一种情况-
var response1 = service.AddSchool(object model, string a);
if(response1.StatusCode == HttpStatusCode.OK)
{
var response2 = service.AddTeacher(object model, int a, string b);
if(response2.StatusCode == HttpStatusCode.OK)
{
var response3 = service.AddStudent(object model, int a, int b, string c);
if(response3.StatusCode == HttpStatusCode.OK)
{
var response4 = service.AddSubject(object model, string a);
{
return true;
}
}
}
}
我嵌套了 if 条件,如果我得到 HttpStatusCode“OK”,我将调用其他方法。但我想用 Fluent Pattern 改变这个嵌套的 if 条件。
有人可以建议我们如何做到这一点吗?我尝试了扩展方法。
我尝试了扩展方法。
你可以使用这样的扩展方法来做到这一点:
public class A {}
public static class Extensions {
public static A ChainA(this A a, int condition, Func<A> func) {
if (a == null) return null;
if (condition == 42) return func();
return null;
}
}
然后使用:
var a = new A();
a
.ChainA(45,() => new A()) // will be null
.ChainA(42, () => new A()) // won't throw because it's an extension (static) method
// end result is null