我正在try 获得与此Kotlin代码等效的C#代码:
class Baz<E>(val value: E)
class Foo<T>(val toto: Baz<T>) {
class Bar<U>(toto: Baz<U>) : Foo<U>(toto) {
val tata: U = toto.value
}
}
这是因为Bar
中的U
与Foo
中的T
相同,因此与Baz
中的E
相同.
请记住,Bar
是一个嵌套类,而不是一个内部类,所以如果Bar
没有泛型U
,它就不可能有toto
的类型.
然后我try 用C#复制它,如下所示:
public class Baz<E> {
public E Value;
public Baz(E value) {
Value = value;
}
}
public class Foo<T> {
public T Toto;
public Foo(T toto) {
Toto = toto;
}
public class Bar<U> : Foo<U> {
public U Tata;
public Bar(U toto) : base(toto) {
Tata = toto.Value;
}
}
}
但是,在此实现中,我得到错误Cannot convert source type 'U' to target type 'T'
.
为什么它不起作用,我怎么才能修复它呢?