2013-04-16 14 views
8

मैं दो तरीकों इस तरह है:सी # कार्रवाई वाक्य रचना

public void ExecuteA() 
{ 
    Write(); 
    // A specific work 
    Clear(); 
} 

public void ExecuteB() 
{ 
    Write(); 
    // B specific work 
    Clear(); 
} 

मैं इस तरह कुछ है करने के लिए एक नई विधि (एक्शन) को Write() और Clear() तरीकों निकालना चाहते हैं:

public ASpecificWork() 
{ 
    // do A work 
} 

public BSpecificWork() 
{ 
    // do B work 
} 

Execute(BSpecificWork); 
Execute(ASpecificWork); 

Write() और Clear() को केवल एक बार Execute() में परिभाषित किया जाएगा। ऐसा करने के लिए सही वाक्यविन्यास क्या है?

उत्तर

21
public void Execute(Action action) 
{ 
    Write(); 
    action(); 
    Clear(); 
} 
+0

+1 हालांकि मैं ए और बी को एक इंटरफेस को लागू करना पसंद करूंगा। –

+1

@ सीवेनहुइस - वे विधियां हैं, प्रकार नहीं, लेकिन हाँ, अगर वे अलग-अलग प्रकार में थे, तो यह एक बेहतर ओओपी दृष्टिकोण होगा। – Oded

3

इस चाल करना चाहिए:

public ASpecificWork() 
{ 
    // do A work 
} 

public BSpecificWork() 
{ 
    // do B work 
} 

public void Execute(Action action) 
{ 
    Write(); 
    action(); 
    Clear(); 
} 

Execute(BSpecificWork); 
Execute(ASpecificWork); 
3

Execute चाहिए Action पैरामीटर लेता है और Write(), action(), Clear() तरीकों को शामिल करना चाहिए।

public void Execute(Action action) 
{ 
    Write(); 
    action(); 
    Clear(); 
} 
संबंधित मुद्दे