2012-01-11 115 views
1

我在使用Visual C#for Windows Phone中的某些代碼時遇到了一些麻煩 問題不在於它不起作用,因爲它的確如此,但我不明白如何使用P 在一個靜態類,創建一個靜態方法,這給本身作爲一個參數:在靜態方法中傳遞此參數作爲參數

public static void MethodONe(this Timeline animation) 
{ 
    //this class does not extend the TimeLine class, and is not connected to it in any     
    //such way. 
    animation.MethodTwo(); 
} 

public static void MethodTwo(this Timeline animation) 
{ 
    someCode(); 
} 

怎麼叫這個parameterpassing,以及它有什麼作用,到底是什麼?

+0

可能重複[?什麼是擴展方法(http://stackoverflow.com/questions/403539/what-are-extension - 方法),[擴展方法](http://stackoverflow.com/questions/5730013/extension-methods),[爲什麼我們在擴展方法中使用「this」](http://stackoverflow.com/questions/2574311 /爲什麼我們使用這種擴展方法) – 2012-01-11 12:42:11

回答

1

這是時間軸對象的所謂擴展方法。它增加了功能而不修改類本身。

http://msdn.microsoft.com/en-us/library/bb383977.aspx

而在你的情況下,動畫參數是Timeline對象(被調用函數):那麼Timeline對象將作爲動畫參數到函數傳遞

var timeLine = new Timeline(); 
timeLine.MethodTwo(); 

。 有維基百科上一個不錯的物品,其futher解釋得很詳細:

http://en.wikipedia.org/wiki/Extension_method

+0

「......參數這是時間軸對象......」 - 這是不正確的。 'this'在這種情況下是_modifier_,而不是_parameter_。參數是'animation' :-) – 2012-01-11 12:41:58

+0

true,編輯文本使其更加清晰:-) – 2012-01-11 12:54:40