调用方法作为包装对象

时间:2018-12-20 00:43:30

标签: c# generics

使用此类定义:

public class Wrapper<T>
{
  public T Item;

  public Wrapper(T item)
  {
    Item = item;
  }

  public static implicit operator T(Wrapper<T> wrapper)
  {
    return wrapper.Item;
  }

  public static implicit operator Wrapper<T>(T item)
  {
    return new Wrapper<T>(item);
  }
}

我想知道是否有一种方法可以在不做明显Wrapper.Item.Bar();的情况下将方法作为Item用作Wrapper对象。

因此,不要这样做:

Wrapper<Foo> wrappedFoo = new Foo();
wrappedFoo.Item.Bar();

我想这样做:

Wrapper<Foo> wrappedFoo = new Foo();
wrappedFoo.Bar(); //equivalent to wrappedFoo.Item.Bar();

感谢您的帮助。

0 个答案:

没有答案