如何将类型传递给方法?

5
我该如何调用这个构造函数?
public class DataField
{
    public String Name;
    public Type TheType;
    public DataField(string name, Type T)
    {
        Name = name;
        TheType = T;
    }
}

我想到了

f = new DataField("Name",typeof(new String()));
但我希望避免创建对象。那么这个可以吗?
f = new DataField("Name",String);

4
编译器说了什么? - Joel Coehoorn
你想对TheType做什么?也许你可以使用泛型? - Jacek
3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
4
你应该能够简单地使用typeof(string)

4
您可以在使用typeof时,使用类型名称:
f = new DataField("Name", typeof(string));

-2

传递 String.class 应该可以工作。它是 Class 的一个实例,它实现了 Type 接口:

new DataField("Name", String.class);

@CodeIgnoto:我相信Alexey的意思是将String传递给typeof函数,只是他没有表达得很清楚。Alexey...请表述得更明确! - musefan
我没有点踩,但你怎么能传递一个类名。在这种情况下,你需要一个 Type 实例,这只能通过 typeOf 或 GetType 来实现。 - Prabhu Murthy
抱歉,我是指 String.class。已更新答案。 - Alexey Feldgendler
2
好的...现在你肯定偏离了目标。string.class是什么?它不存在! - musefan
X.class 是引用 X 类的 Class 对象的语法。我对你的小写字符串有点困惑。在 Java 中,标准的 String 类以大写字母开头。 - Alexey Feldgendler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,