小编Mar*_*kus的帖子

如何在 C# 3.5 的超类中定义强制转换运算符?

我有一个容器类,用于向标准数据类型(如 int、string 等)添加一些属性。这个容器类封装了这样一个(标准类型)对象的对象。然后其他类使用容器类的子类来获取/设置添加的属性。现在我希望子类可以在其封装对象和自身之间隐式转换,而无需在其中添加额外的代码。

这是我的课程的简化示例:

  // Container class that encapsulates strings and adds property ToBeChecked
  // and should define the cast operators for sub classes, too.
  internal class StringContainer
  {
    protected string _str;

    public bool ToBeChecked { get; set; }

    public static implicit operator StringContainer(string str)
    {
      return new StringContainer { _str = str };
    }

    public static implicit operator string(StringContainer container)
    {
      return (container != null) ? container._str : null;
    }
  }

  // An example of many sub classes. Its …
Run Code Online (Sandbox Code Playgroud)

c# casting operator-keyword

5
推荐指数
1
解决办法
1004
查看次数

标签 统计

c# ×1

casting ×1

operator-keyword ×1