簡體   English   中英

C#是否與Objective-c的類別相同?

[英]Does C# have a equivalent to Objective-c's category?

我正在尋找與C#語言的Objective-c類別相當的東西。

您無法向類添加方法,但是您可以使用擴展方法來實現類似的效果。

使用靜態方法創建一個靜態類。 靜態方法第一個參數用“this”標記,方法用類型參數裝飾到類。

namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static int WordCount(this String str)
        {
            return str.Split(new char[] { ' ', '.', '?' }, 
                             StringSplitOptions.RemoveEmptyEntries).Length;
        }
    }   
}

然后,此方法將在String類型的所有實例上可用。 但是,您仍然需要通過使用擴展類。

該示例來自Microsoft自己的文檔: http//msdn.microsoft.com/en-us/library/bb383977.aspx

與C#中的Objective-C類別最接近的是擴展方法

請注意, C#是一種靜態類型語言 ,不像Objective-C那樣使用動態調度。 這意味着方法解析在編譯時執行,而不是在運行時執行,就像您在Objective-C中習慣的那樣。

相關資源:

類別是否允許您在不對其進行子類化的情況下向現有類添加方法? 如果是這樣,則擴展方法將是C#等價物。 它們不會取代現有的方法,但會受到一些限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM