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的静态方法。