0
それぞれのifパターンでif-elseを単一条件で変換する方法を知っています。 しかし、私のコードでは、if内に& &演算子で区切られた複数の条件があるので、私はちょっと混乱しています。 このようなケースをどのようにリファクタリングするかif-elseを複数の条件でデザインパターンで変換する方法C#
コードは以下のとおりである:
public ActionResult PaymentDetails(PaymentlistingDTOVM model, string SearchButton)
{
PaymentlistingDTOVM dto = new PaymentlistingDTOVM();
if (model.PaymentSearch == null)
{
ModelState.AddModelError("Message", "Please select type to search (Member No/Member Name).");
}
else if (model.PaymentSearch == "1" && model.Memberno == null)
{
ModelState.AddModelError("Message", "Please Enter Member No.");
}
else if (model.PaymentSearch == "2" && model.MemberName == null)
{
ModelState.AddModelError("Message", "Please Enter Member Name.");
}
else
{
if (!string.IsNullOrEmpty(model.SearchButton) || model.Page.HasValue)
{
if (model.Memberno != null)
{
var Listpay = objIPaymentlisting.AllPaymentDetails(Convert.ToString(model.Memberno));
var results = Listpay.Where(p => (p.MemberID == model.Memberno));
var pageIndex = model.Page ?? 1;
model.SearchResults = results.ToPagedList(pageIndex, RecordsPerPage);
}
else if (model.MemberName != null)
{
string[] Memno = model.MemberName.Split('|');
var Listpay = objIPaymentlisting.AllPaymentDetails(Convert.ToString(Memno[3]));
var results = Listpay.Where(p => (p.MemberID == Convert.ToInt32(Memno[3])));
var pageIndex = model.Page ?? 1;
model.SearchResults = results.ToPagedList(pageIndex, RecordsPerPage);
}
}
}
return View(model);
}
コンパイルエラー(行53、列30):;期待値 コンパイルエラー(行53、列32):戻り値の型を持つメソッドが必要 コンパイルエラー(行53、列45):識別子が必要です –
次の文でエラーが発生しています:public bool IsSatisfied(T obj)=>述語obj);エラー:コンパイルエラー(53行目、30行目):;期待値 コンパイルエラー(行53、列32):メソッドに戻り値の型が必要です コンパイルエラー(行53、列45):識別子が必要です –
これはC#6(Expression-bodied members)の機能です。より小さなバージョンを使用している場合は、通常のメソッド本体に変更することができます。 –