C#中是否有带有参数约束的泛型构造函数?

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

public class A {

public static void Method<T> (T a) where T : new() {

//...do something...

}

}

您在其中指定的位置T应具有不需要参数的构造函数。我想知道是否有一种方法可以添加一个约束,例如“ 存在带有float[,]参数的构造函数?

以下代码无法编译:

public class A {

public static void Method<T> (T a) where T : new(float[,] u) {

//...do something...

}

}

解决方法也有用吗?

回答:

如您所知,您无法执行此操作。

作为一种解决方法,我通常提供一个可以创建以下类型的对象的委托T

public class A {

public static void Method<T> (T a, Func<float[,], T> creator) {

//...do something...

}

}

以上是 C#中是否有带有参数约束的泛型构造函数? 的全部内容, 来源链接: utcz.com/qa/410083.html

回到顶部