我正在尋找相當於C#語言的Objective-c的類別。C#是否與Objective-c的類別相同?
9
A
回答
14
您不能添加方法一類,但是你可以使用擴展方法來實現類似的效果。
使靜態類,它有一個靜態方法。靜態方法的第一個參數被標記爲「this」,並且該方法被修飾爲具有參數類型的類。
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
此方法將在類型爲String的所有實例上可用。但是,您仍然需要通過您的使用獲得擴展課程。
的例子是從微軟獲得自己的機制的文檔在這裏拍攝:http://msdn.microsoft.com/en-us/library/bb383977.aspx
3
不要類別可以對方法添加到現有類沒有子呢?如果是這樣,那麼擴展方法將是C#的等價物。他們不會取代現有的方法,並受到一些限制。
5
的最接近Objective-C Categories在C#是Extension Methods。
請注意,C#是靜態類型語言,不像Objective-C那樣使用動態調度。這意味着方法解析在編譯時間執行,而不是在運行時執行,就像您在Objective-C中習慣的那樣。
相關資源:
相關問題
- 1. C#:數據類型是否與類型相同?
- 2. C++是否有與它們自己及其父類相同類型的子類?
- 3. 相同類別
- 4. 相同類別
- 5. 相同類別
- 6. 相同類別的組對象C#
- 7. Objective C - 是否可以從另一個相同類型的類別中調用類別的方法?
- 8. webapp與CMS - 是否相同
- 9. Article是否與EntryId相同?
- 10. 函數參數類型是否必須與C++中的參數類型相同?
- 11. 確定在C++中是否有相同基礎類型的別名
- 12. 檢查所有項目是否具有相同的類別
- 13. django是否具有與Rails相同的代碼生成級別?
- 14. 是否有與ImageFormat類相同的Windows Store類?
- 15. 是否x - > y在c中與x.y在c#/ java中相同?
- 16. 在SystemVerilog中,虛擬類是否與抽象類相同?
- 17. 是string.IsNullOrEmpty是否與String.IsNullOrEmpty相同?
- 18. 這是str_replace是否與此preg_replace相同?
- 19. 是否有與.NET相同的JGroups
- 20. 是否存在與Marklogic相同的liquibase
- 21. 是否有與iPhone SDK相同的CoreText?
- 22. 是否有與Petapoco相同的Scala?
- 23. 是否有與Ruby相同的Stylecop?
- 24. 是否有與Mac相同的posh-git?
- 25. Octave與iPython的「!」是否相同?
- 26. 是否有與UniBASIC LOCATE相同的UniObjects?
- 27. 是否有與Windows相同的EDQUOT?
- 28. 是否有與NSDecimalNumber相同的RoundHalfUp?
- 29. 是否有與@Assisted相同的javax.inject。*
- 30. 是否有與插件中的Bootstrap類相同的內容
如果你那是什麼細說,你可能會得到更多的答覆,因爲人可以幫助你在不知道的Objective-C – 2011-04-07 10:41:07
@Daniel:現有的答案可能會讓遊戲離開,但由於我對C#的瞭解不多,並且可能有所幫助:在Objective-C中,類別在運行時向類中添加新方法。所以你不是繼承類(如果對象是由你不能改變的代碼創建的話,這很有用),只是增加了功能。在它之下是可以實現的,因爲在Objective-C中動態查找所有的方法調用;您可以隨時添加一些額外的方法 - 無論是通過一個漂亮的,語法上乾淨的類別,或者通過將C級接口下載到運行時。 – Tommy 2011-04-07 11:56:03
@Tommy:謝謝你的解釋。 – 2011-04-07 11:59:13