gpt4 book ai didi

C# 泛型 - 类型参数的约束

转载 作者:太空狗 更新时间:2023-10-29 19:59:14 24 4
gpt4 key购买 nike

我正在尝试构建一个使用 C# 泛型功能的工厂方法。

在这个工厂方法中,我想将它限制到一些特定的类,所有这些类都没有默认构造函数。

这是我的例子。有人可以告诉我是否可以运行它吗?

public class AbstractClass {
//this abstract class does not have a default constructor, nor its subclasses
public AbstractClass(SomeClassName obj) {
//use obj for initialization
}
}

//this factory class should create objects of type T that inherit
//from AbstractClass and invoke the non-default constructor
public class FactoryClass {
public static T BuildObject<T> (SomeClassName obj) where T: AbstractClass {
return new T(obj); //does not work?!?!?!
}
}


//Edit: ANSWER!!!
public static T BuildObject<T>(SomeClassUsedForTheConstructor item) where T : SomeAbstractClass {
return (T) Activator.CreateInstance(typeof (T), item);
}

最佳答案

我喜欢在需要创建类型 T 的新对象的泛型中使用 Activator.CreateInstance(typeof(T))。它工作得非常好。

关于C# 泛型 - 类型参数的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com