C# CA 2225,重载长操作员
我正试图使长操作员过载C# CA 2225,重载长操作员,c#,operator-overloading,overloading,fxcop,C#,Operator Overloading,Overloading,Fxcop,我正试图使长操作员过载 public static implicit operator long (Abc abc) { ..... } public static long ToLong(Abc abc) { // Logic for converting Abc to long here. } 代码分析给出了它的CA2225 运算符重载指定了替换项。提供一个名为 “ToXXX”或“FromXXX”作为运算符“FileTime.implicit”的替代项 运算符长(文件时
public static implicit operator long (Abc abc)
{
.....
}
public static long ToLong(Abc abc)
{
// Logic for converting Abc to long here.
}
代码分析给出了它的CA2225
运算符重载指定了替换项。提供一个名为
“ToXXX”或“FromXXX”作为运算符“FileTime.implicit”的替代项
运算符长(文件时间)“”
有人能帮忙吗?将此方法与方法一起添加到类中
public static implicit operator long(Abc abc){ }
public static implicit operator Tolong(Abc abc){ }
正如我在PSR答案下的评论中提到的,您需要添加一个静态方法ToLong,而不是另一个隐式操作符
public static implicit operator long (Abc abc)
{
.....
}
public static long ToLong(Abc abc)
{
// Logic for converting Abc to long here.
}
在隐式运算符旁边添加此方法将解决您的警告。基本上只需添加一个
公共静态long-ToLong(Abc)
方法。错误消息和错误的帮助文档似乎足够清楚。你到底有什么问题?您是否尝试按照错误消息中的建议进行操作?例如,“提供一个名为‘ToXXX’或‘FromXXX’的方法作为运算符‘FileTime.implicit operator long(FileTime)’的替代方法。”Peter Duniho…..我不知道该函数体中会有什么内容?与我在原始函数中编写的代码相同??这两个函数将具有相同的主体?我是否必须用这个ToXXX或FromXXX函数替换我的函数?或者我们保留这两个函数?Tolong不是一个类型,不能是隐式运算符的一部分。您需要一个名为ToLong的静态方法。