双向隐式运算符重载的模式名称和接口

时间:2011-09-15 13:38:17

标签: c# .net design-patterns interface operator-overloading

我最近在C#中发现了隐式运算符重载的奇迹。我想知道,如果你有两种隐式运算符重载的“方式”,例如:

public static implicit operator FooType(int num)
{
    return new FooType(num);
}

public static implicit operator int(FooType fooType)
{
    return fooType.IntValue;
}
  1. 该设计模式是否有名称?
  2. 我是否可以使用预定义的.NET界面,比如说ICastable<int>

2 个答案:

答案 0 :(得分:6)

  1. 不是我知道的。

  2. 您可以考虑实施IConvertible。 (如果您的课程也可以比较,您可以考虑实施IComparable<T>。)

答案 1 :(得分:2)

  1. 如果是我从来没有听说过它
  2. 运算符是静态构造,在编译时解析。它们不能成为任何界面的一部分