gpt4 book ai didi

c# - byte[] 的重载运算符

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:52 25 4
gpt4 key购买 nike

我想在 C# 中为 byte[] 类型的操作数重载 <、>、<= 和 >= 运算符。所以我发现了“二元运算符的参数之一必须是包含类型”的错误。无论如何,我似乎无法从 byte[] 继承并且我不想将 byte[] 封装在另一个类中(听起来开销太大)。有办法解决吗?也许使用扩展方法?还是那完全是疯了?

非常感谢。

最佳答案

No real way to do so. – Mehrdad Afshari

给定 byte[] a, b:

可以使用扩展方法将“罗嗦”运算符定义为 a.GreaterThan(b),这实际上只是编写 MyByteArray.GreaterThan(a, b)< 的一种简短方式.

但是,如果不能修改表达式中的任何类型(可能相同)以添加运算符,则不能定义运算符。

不过,一个简单的包装器不会增加太多开销(或好处?):MyByteArray.Rich(a) > b,其中 Rich 返回一个带有 > 运算符定义。

隐式/显式转换也被淘汰,因为 a 仍然无法修改,因为 [自定义] 转换是在源表达式而不是目标表达式上定义的。

关于c# - byte[] 的重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25817845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com