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

发布于 2024-12-04 12:10:09 字数 352 浏览 1 评论 0原文

我最近发现了 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

I recently discovered the wonders of implicit operator overloading in C#. I was wondering, if you have both "ways" of implicit operator overloading, such as:

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

public static implicit operator int(FooType fooType)
{
    return fooType.IntValue;
}
  1. Is there a name for that design pattern?
  2. Is there a predefined .NET interface that I can use, say ICastable<int>?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笨笨の傻瓜 2024-12-11 12:10:09
  1. 据我所知。

  2. 您可以考虑实施IConvertible。 (如果您的类也可以与事物进行比较,您可能会考虑实现 IComparable。)

  1. Not that I'm aware of.

  2. You might consider implementing IConvertible. (If your class can also be compared to things, you might consider implementing IComparable<T>.)

锦爱 2024-12-11 12:10:09
  1. 如果是的话我从来没有听说过它
  2. 运算符是静态构造并在编译时解析。它们不能成为任何界面的一部分
  1. If it is i have never heard of it
  2. Operators are static constructs and are resolved at compile time. They cannot be part of any interface
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文