2
我想在C#中爲byte []類型的操作數過載<,>,< =和> =操作符。所以我很難找到關於「二元運算符的一個參數必須是包含類型」的錯誤。無論如何,我似乎無法從字節[]繼承,我不想封裝一個字節[]在另一個類(聲音像太多的開銷)。有沒有辦法解決它?也許使用擴展方法?還是完全瘋了?byte []的重載操作符
非常感謝。
我想在C#中爲byte []類型的操作數過載<,>,< =和> =操作符。所以我很難找到關於「二元運算符的一個參數必須是包含類型」的錯誤。無論如何,我似乎無法從字節[]繼承,我不想封裝一個字節[]在另一個類(聲音像太多的開銷)。有沒有辦法解決它?也許使用擴展方法?還是完全瘋了?byte []的重載操作符
非常感謝。
沒有真正的方法來做到這一點。 - 邁赫達德Afshari
鑑於byte[] a, b
:
人們可以使用擴展方法來定義「羅嗦」運營商a.GreaterThan(b)
,這實在是寫MyByteArray.GreaterThan(a, b)
的只是一小段路。
但是,它是而不是如果表達式中既不可能(可能是相同)類型不能被修改以添加這樣的話,則可能定義運算符。
儘管如此,一個簡單的包裝將不會增加很多開銷(或受益?):MyByteArray.Rich(a) > b
,其中Rich
返回一個類型,其運算符定義爲>
。
由於a
仍然無法修改,因此隱式/顯式強制轉換也會失敗,因爲在源表達式上定義了[自定義]強制轉換,而不是目標表達式。
沒有真正的方法來做到這一點。 – 2014-09-12 22:37:47