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