【问题标题】:Cannot store an array of classes无法存储类数组
【发布时间】:2011-07-17 11:37:26
【问题描述】:

我正在尝试存储稍后可以初始化的类数组。我正在尝试这样做:

Type[] x = { className };

但是,我收到以下错误:

'myNamespace.className' 是一个“类型”,但它被用作一个“变量”

任何指导将不胜感激。

【问题讨论】:

    标签: c# class types


    【解决方案1】:

    使用typeof 运算符,用于获取类型的System.Type

    Type[] x = { typeof(className) };
    

    编辑:

    响应您的评论:要从 System.Type 创建类型的实例,请使用 Activator.CreateInstance 方法的适当重载。

    例如

    Type t = typeof(int);
    
    // Boxed Int32 with value 0
    object o = Activator.CreateInstance(t);
    

    在你的情况下,既然你知道类的基类型,你当然可以将返回值转换为基类型。

    【讨论】:

    • 这似乎行得通!另一个快速的事情:我将如何初始化它(我知道父类)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多