相关疑难解决方法(0)

在C#中是否存在具有参数约束的通用构造函数?

在C#中,您可以对通用方法设置约束,例如:

public class A {

    public static void Method<T> (T a) where T : new() {
        //...do something...
    }

}
Run Code Online (Sandbox Code Playgroud)

您指定的T应该具有不需要参数的构造函数.我想知道是否有办法添加一个约束,如" 存在一个带float[,]参数的构造函数? "

以下代码无法编译:

public class A {

    public static void Method<T> (T a) where T : new(float[,] u) {
        //...do something...
    }

}
Run Code Online (Sandbox Code Playgroud)

解决方法也有用吗?

c# generics parameters constructor generic-constraints

156
推荐指数
6
解决办法
7万
查看次数

泛型方法:使用参数实例化泛型类型

我有一个采用T类型的通用方法,我需要能够在需要单个XmlNode的情况下调用构造函数。当前,我正在尝试通过具有一个抽象基类来实现此目的,该基类具有我想要的构造函数(加上一个无参数的构造函数,因此除了添加实际的子类之外,我无需编辑“子类”)并以此进行约束。如果我尝试实例化这些类之一,它会抱怨:

Cannot create an instance of the variable type 'T' because it does not have the new() constraint
Run Code Online (Sandbox Code Playgroud)

如果我添加new()约束,我得到:

'T': cannot provide arguments when creating an instance of a variable type
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

c# generics instantiation

3
推荐指数
1
解决办法
1万
查看次数