c# 4.0 - Code duplication issue inside an if -


i have code duplication want avoid cannot create method containing code because there slight difference in line inside if. here's mean :

code 1 :

if case1 () {     same code     if()     {         same code          line1     } 

code 2 :

if case2 () {     same code     if()     {         same code          line2     } 

both codes same except 1 line (line1 , line2). since code big want be able copy inside function example. have idea how this?

thanks

generally speaking, looking action or func. that's type encapsulates executable code:

public int yourcommonmethod(int parameter, func<int, int> calculate) {    // common code     if(calculationneeded)    {       // common code       result = calculate(parameter);    }     // more common code } 

you call 2 different calculation methods:

int result = yourcommonmethod(5, => + 17); 

or

int result = yourcommonmethod(5, => / 48); 

for action, need less:

public int yourcommonmethod(int parameter, action<int> dowork) {    // common code     if(calculationneeded)    {       // common code       dowork(parameter);    }     // more common code } 

and can call this:

int result = yourcommonmethod(5, console.writeline); 

or

int result = yourcommonmethod(5, => console.writeline("some string including {0}", i)); 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -