我试图在开放泛型类型上创建一个构造函数以供派生类型使用,但我要么不知道怎么做,要么不可能 - 不确定哪个。
public struct DataType<T> : IDataType {
private T myValue;
private TypeState myState;
internal DataType<T>(T initialValue, TypeState state) {
myValue = initialValue;
myState = state;
}
}
非常感谢任何帮助!
科特
编辑:构造函数最初发布为私有,这是错误的,应该受到保护。但是 - 结构中不允许保护,所以我将其更改为内部。
答案 0 :(得分:7)
构造函数没有泛型参数,就像类的任何普通方法一样,它可以使用T
,但也不是通用的。
public class DataType<T> : IDataType {
private T myValue;
private TypeState myState;
protected DataType(T initialValue, TypeState state) {
myValue = initialValue;
myState = state;
}
}
请注意,不能继承结构,并且不能通过继承类来调用私有构造函数。同时更改这两个以使其正常工作。
答案 1 :(得分:0)
private DataType(T initialValue, TypeState state)
{
myValue = initialValue;
myState = state;
}