2

以下のメソッドには、3 つの条件があります。それらをメソッドに置き換えて、条件を渡したいと思います。

また、条件付きボディはほぼ繰り返されます。MyMethod() 内でローカルにのみ存在するメソッドを作成することは可能ですか? したがって、以下のコードは次のようになります。

//縮小コード

public ClassZ MyMethod (Class1 class1Var, Class2 class2Var)
{
 return localMethod((class1Var.SomeBool && !class2Var.SomeBool), false, "This is string1");
 return localMethod((class1Var.SomeBool && !class2Var.IsMatch(class2Var)), true);
 return localMethod((class1Var.SomeProperty.HasValue && !class2Var.SomeBool), false, "This is string2");

//...localMethod() defined here...
}

ただし、上記では、1 つだけが返されます。

//元のコード

public ClassZ MyMethod (Class1 class1Var, Class2 class2Var)
{

 if(class1Var.SomeBool && !class2Var.SomeBool)
 {
   return new ClassZ
   {
     Property1 = false,
     String1 = "This is string1"
   };
 }

 if(class1Var.SomeBool && !class2Var.IsMatch(class2Var))
 {
   return new ClassZ
   {
     Property1 = true,
   };
 }
 if(class1Var.SomeProperty.HasValue && !class2Var.SomeBool)
 {
   return new ClassZ
   {
     Property1 = false,
     String1 = "This is string2"
   };
 }

}

基本的に、メソッド内に一時的なメソッドを作成したいと思います。

4

1 に答える 1