gpt4 book ai didi

C# 字符串运算符重载

转载 作者:可可西里 更新时间:2023-11-01 09:16:44 26 4
gpt4 key购买 nike

你好 friend -

什么是重载字符串运算符 <、>、<= 和 >= 的正确方法(不包括是否可取的参数)?

到星期天我已经尝试了五种方法,但我遇到了各种错误 - 我最好的办法是声明一个部分类并从那里重载,但由于某种原因它不起作用。

namespace System
{
public partial class String
{
public static Boolean operator <(String a, String b)
{
return a.CompareTo(b) < 0;
}

public static Boolean operator >(String a, String b)
{
return a.CompareTo(b) > 0;
}
}

最佳答案

String 是一个密封类。您不能继承它,并且如果没有 String 的原始源代码,您就不能编译它的部分类。即使您掌握了源代码(可以通过 Reflector 或通过 Visual Studio 符号下载),您仍然会遇到问题,因为它是运行时中的一等公民。

你真的需要 < 和 > 作为字符串的运算符吗?如果是这样...为什么不直接使用 extension methods

public static bool IsLessThan(this string a, string b) 
{
return a.CompareTo(b) < 0;
}

public static bool IsGreaterThan(this string a, string b)
{
return a.CompareTo(b) > 0;
}


// elsewhere...
foo.IsLessThan(bar); // equivalent to foo < bar

关于C# 字符串运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587608/

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