加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在开放泛型类型中定义构造函数?

发布时间:2020-12-16 01:39:55 所属栏目:百科 来源:网络整理
导读:我试图在开放的泛型类型上创建,它有一个构造函数供派生类型使用,但我要么不知道怎么做,要么不可能 – 不确定哪个. public struct DataTypeT : IDataType { private T myValue; private TypeState myState; internal DataTypeT(T initialValue,TypeState stat
我试图在开放的泛型类型上创建,它有一个构造函数供派生类型使用,但我要么不知道怎么做,要么不可能 – 不确定哪个.

public struct DataType<T> : IDataType {

    private T myValue;
    private TypeState myState;

    internal DataType<T>(T initialValue,TypeState state) {
        myValue = initialValue;
        myState = state;
    }
 }

任何帮助非常感谢!

科特

编辑:构造函数最初发布为私有,这是错误的,应该受到保护.但是 – 结构中不允许保护,因此我将其更改为内部.

解决方法

构造函数没有泛型参数,就像可以使用T的类的任何常规方法一样,但也不是通用的.

public class DataType<T> : IDataType {

    private T myValue;
    private TypeState myState;

    protected DataType(T initialValue,TypeState state) {
        myValue = initialValue;
        myState = state;
    }
 }

请注意,不能继承结构,并且不能通过继承类来调用私有构造函数.改变这两个,以使其工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读