generic-constraints相关内容

为什么 System.Array 不能是类型约束?

我正在做一个包含几种不同类型数组的小项目(例如 double[]、float[]、int[]代码>.出于验证/测试/健全的目的,我正在将其中一些数组打印到控制台.所以我有多个如下所示的函数(在这个例子中简化了 - 假设我只是在处理单维数组): void Print(float[] a)//打印浮点数组{for (int i = 0; i ..
发布时间:2021-12-31 22:46:04 C#/.NET

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

在 C# 中,您可以对泛型方法施加约束,例如: 公共类 A {公共静态无效方法(T a) 其中 T : new() {//...做一点事...}} 在您指定 T 应该有一个不需要参数的构造函数的地方.我想知道是否有办法添加约束,例如“存在带有 float[,] 参数的构造函数?" 以下代码无法编译: 公共类 A {公共静态无效方法(T a) 其中 T : new(float ..
发布时间:2021-12-15 09:27:05 C#/.NET

接口的通用类型约束?

我可以这样做: void MyMethod() where T : class { } 有这样的东西吗? void MyMethod() where T : interface { } 我不希望明确指定接口名称. 另一种选择是,我可以传入受class约束的参数,并在typeof(T).IsInterface返回false时引发异常,但这并不像约束那样干净. ..
发布时间:2020-11-13 05:28:23 C#/.NET

为什么我们不能通过类型扩展来满足F#静态成员约束?

我希望能够使用静态方法从其他库扩展类型以启用通用算术.例如,以微软公司新创建的SIMD友好的固定大小VectorN类型为例.他们定义了Zero,他们定义了(+),他们定义了(/),但是我不能在它们上使用Array.average,因为他们没有定义DivideByInt,我很乐意: open System.Numerics type Vector2f with static member ..
发布时间:2020-11-03 00:48:04 其他开发

如何将LanguagePrimitives.GenericZero / get_Zero添加到System.String?

注:我在最后添加了很多感兴趣的评论。这些并不意味着应该使用 inline 和静态类型参数 willy nilly ,他们就在那里,这样人们就不必花很多时间去搜索与这个问题相关的许多SO问题, 我知道当需要做一个泛型函数并且需要一个零(0)值时,F#提供 GenericZero 。 解析任何基本数字类型或任何类型为 的零值,其中包含名为Zero的静态成员。 因此,这让我相信要使用 ..

到底是什么"特级"?

未能得到类似后,以下编译: 公共类根< T>其中T:System.Array的 { } 与错误 一个约束不能特殊类'的System.Array“ 我开始想,究竟是什么的是的一个“特殊类”? 人们似乎常常得到同样的错误时他们在一个通用的限制指定 System.Enum 。我买了 System.Object的, Syst ..
发布时间:2016-09-22 19:21:18 C#/.NET

有没有在C#参数约束的通用构造?

在C#中,你可以把一个约束在一个通用的方法,如: 公共类A { 公共静态无效的方法&LT; T&GT; (T A)其中T:新的(){ //...做一点事... }} 如果您指定 T 应该有一个不需要参数的构造函数。我不知道是否有一种方式来增加像约束“的存在一个浮动构造函数[,] 参数?的” 以下code不能编译:公共类A { 公共静态无效的方法&LT; T ..
发布时间:2016-08-26 15:28:52 C#/.NET

C#泛型约束:结构的数组

我想创建包含类型为值类型(结构),像数组的通用的限制: 公共类X&LT; T&GT;其中T:结构[] 或者公共类X&LT; T,U&GT; 其中U:结构 其中T:U [] 但是,这并不正常工作。看来的System.Array不能被用作类型约束。 所以 - 我该如何约束一个泛型参数是结构的数组? 第一个答案后更新:公共接口IDeepCopyable&LT; T&GT; ..
发布时间:2016-06-03 10:46:03 C#/.NET

为什么不能System.Array的是一个类型的约束?

我工作的一个小项目,有一些不同类型的数组(如双[] ,浮法[] , INT [] 。为了验证/测试/神智的目的,我打印出一些阵列的控制台,因为我走。所以我有多个看起来像下面的这些功能​​(简化这个例子 - 假设我只用一维数组处理): 无效打印(浮动[]一)//打印float数组 { 的for(int i = 0; I&LT;则为a.length;我++) { Co ..
发布时间:2015-11-26 21:16:15 C#/.NET

通用的限制:强制类型有静态的功能和构造函数参数

我知道你可以这样写: 类GenericClass&LT; T&GT;其中,T:新的() { } 要强制执行 T 有一个空的构造。 我的Qs的是: 你能强制执行 T 与参数的特定类型的构造?像: 类SingletonFactoryWithEmptyConstructor&LT; T&GT;其中,T:新的(INT) 你能强制执行 T 有一个静态函数(比方说,无效 ..
发布时间:2015-11-26 18:54:30 C#/.NET

具有相同签名成员已经定义了不同类型约束

我曾与超载有这似乎排他性不同的约束方式运行跨越的问题。这是我的例子: 大众A级 { 公共无效走走LT; T&GT;()其中T:类 { } 公共无效走走LT; T&GT;()其中T:结构 { } } 这不能编译,出现以下错误“会员与已经定义了相同的签名”。是否有可能满足这两个条件的同时或它的C#编译器只是限制? 解决方案 这不是一种 ..
发布时间:2015-11-26 18:06:50 C#/.NET