只是想知道是否有無論如何代表在C#3.5以下代碼:是否有可能在C#中通過以下方式重載泛型轉換運算符?
public struct Foo<T> {
public Foo(T item) {
this.Item = item;
}
public T Item { get; set; }
public static explicit operator Foo<U> (Foo<T> a)
where U : T {
return new Foo<U>((U)a.Item)
}
}
感謝
當然你可以,如果引用將對象作爲一個Stream來屏蔽,但它實際上是一個MemoryStream,那麼你當然可以將它轉換成一個Memory Stream。這是一個合法的方法,問題是你不能真正指定運算符重載的通用約束... – LaserJesus 2009-06-22 05:54:37
...如果你把我有的代碼表示爲方法而不是運算符重載,它會編譯 – LaserJesus 2009-06-22 05:56:09