我是一名 Java 人员,正在尝试用 C# 实现一些代码。我研究了一个小时但没有找到任何东西。
我有一个声明为通用的接口,称为
interface TypeSerializer<T>
然后我有两个实现。
class StringSerializer: TypeSerializer<String>
and
class ByteArraySerializer: TypeSerializer<byte[]>
现在我想用这些实例创建一个数组,并将数组称为 TypeSerializer。像这样:
TypeSerializer[] serializers =
new TypeSerializer[2] {new ByteArraySerializer(), new StringSerializer()};
该代码无法编译,但在 Java 中,类似的代码可以编译。
我也尝试过……
TypeSerializer<Object>[] serializers =
new TypeSerializer<Object>[2] {new ByteArraySerializer(), new StringSerializer()};
还是没办法。
在不知道通用类型的情况下,我应该如何声明这个数组并访问实例。
EDIT
根据下面的答案,很明显我应该有两个接口;有和没有通用。
这是接口方法。您能否展示一下如何实施它们?
public interface ITypeSerializer<T>:TypeSerializer
{
void write(BinaryWriter writer, T obj);
T read(BinaryReader reader);
}