其他人可以解釋這一點,(初學者的方法)。謝謝..你在C#中的「擴展方法」是什麼意思?
回答
擴展方法是在行爲就像他們在其他類中定義靜態類只是靜態方法。
在類型變爲關鍵字this
之前的第一個參數中,指示是擴展方法。
實施例:
public static class Extensions
{
public static object ExtensionMethodForStrings(this string s, object otherParameter)
{
//....
return //whatever you want to return or not
}
}
這是對系統的擴展方法。字符串,它有兩個參數: - 字符串s:這是實例變量 - 對象otherParameter:
靜態:只要你想包括無
您可以調用此方法有兩種方式,您可以有許多方法:
string s = "Your string";
object o = new object(); // or whatever you want
object result = Extensions.ExtensionMethodForStrings(s,o);
擴展方法方式
string s = "Your string";
object o = new object(); // or whatever you want
object result = s.ExtensionMethodForStrings(o);
在第二種情況下,它的工作方式就好像類型字符串具有名爲ExtensionMethodForStrings的實例方法。實際上,編譯器是等價的。
+1表示您仍然可以將其稱爲正常靜態方法。不僅如此,還可以在'null'引用上調用它。寫這個方法的時候記住這兩個事實是很重要的。不要假設'this'參數不能爲空。 – Rich 2010-08-14 01:02:31
擴展方法使您能夠將方法「添加」到現有類型而無需創建新的派生類型,重新編譯或以其他方式修改原始類型。擴展方法是一種特殊的靜態方法,但它們被稱爲擴展類型上的實例方法。對於用C#和Visual Basic編寫的客戶端代碼,調用擴展方法和實際在類型中定義的方法之間沒有明顯區別。
擴展方法是靜態類中的靜態方法,其靜態類的第一個參數前面有關鍵字this
。
C#編譯器有一些語法糖,可以將x.Foo(bar)
的調用轉換爲SomeExtension.Foo(x, bar)
。這被LINQ(Take,Skip,Where,Select等)廣泛使用,但如果你願意,你也可以編寫自己的擴展方法。
這個問題包括很多的有用的擴展方法的實例:
擴展方法是其行爲(有點)像它是一個類的成員的方法,但它不是該類的成員。它可以被稱爲該類的成員,但沒有提及該類的內部。
擴展方法是靜態方法,並且必須是靜態類的成員。
public static class StringExtensions
{
public static string HtmlEncode(this string dataString)
{
return HttpServerUtility.HtmlEncode(dataString);
}
}
關鍵字「這個」之前的第一參數類型標識爲一個擴展方法,和類它延伸。
這將是這樣使用:
string foo = "bar";
string myOutput = foo.HtmlEncode();
- 1. #{} - ANT中的擴展是什麼意思?
- 2. <T擴展是什麼意思?
- 3. 你是什麼意思的調用者在Java中的方法?
- 4. 「〜方法」是什麼意思?
- 5. extern模板是一個c + + 11擴展是什麼意思?
- 6. C++中的(*)語法是什麼意思?
- 7. 什麼?在C#中是什麼意思?
- 8. C中##是什麼意思?
- 9. 在java中擴展Vector <Object>是什麼意思?
- 10. 在聲明方法時,C++中的= 0是什麼意思?
- 11. PowerShell中可擴展字符串中的$($ variableName)是什麼意思?
- 12. 什麼是擴展方法?
- 13. 在c/C++中,^ =是什麼意思?
- 14. '「」''在C#中的「」+ ex'是什麼意思?
- 15. 什麼是(int)在c#中的意思?
- 16. 什麼是connection.Dispose()在C#中的意思?
- 17. 是什麼意思:是什麼意思?
- 18. 什麼是tf.extract_image_patches方法的意思?
- 19. 在c#中「生成方法存根」是什麼意思?
- 20. List <JAXBElement <?是什麼?擴展SomeClassName >>的意思是?
- 21. 在Java中,方法簽名枚舉<?是什麼?擴展ZipEntry>是什麼意思?
- 22. **是什麼意思,C?
- 23. %* c是什麼意思?
- 24. 這是什麼意思? [c#]
- 25. 這是什麼意思-c
- 26. 這是什麼意思 - C#
- 27. cmd/C是什麼意思?
- 28. 在c#中'T:class'是什麼意思?
- 29. - >在C++中是什麼意思?
- 30. 在c#中,它是什麼意思'??'?
http://social.msdn.microsoft.com/Search/en-US/?Query=extension+methods+c%23 – 2010-08-14 00:44:46
http://msdn.microsoft.com/en-us/library/bb383977。 aspx – 2010-08-14 00:44:48
感謝所有的答案......) – yonan2236 2010-08-14 00:59:28