问题标签 [generic-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET 通用列表问题,按设计工作,需要解决。增加价值而不是参考
我有一个List<T>
并且我需要避免我将要概述的行为:
这会导致此 writeline 打印相同的值。
基本上我需要的是改变“添加”方法的行为。我想添加一个具有相同值的对象的新实例,而不仅仅是对同一对象的引用。我知道这将使用更多的内存。
c# - C# 中的泛型方法
一般来说,通用方法对我来说是新的。需要一个返回泛型集合的方法,但也需要一个相同泛型类型的集合并接受
范围。整个以下函数的 T 应该是相同的类型,所以我现在使用的是(简化版):
但我收到错误:
错误:无法从用法中推断方法“System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumberable, System.Func)”的类型参数。尝试明确指定类型参数。
有没有办法做到这一点?
language-agnostic - 在正式软件设计中处理无定形子系统
像 Alexander Stepanov 和 Sean Parent 这样的人投票赞成采用正式和抽象的软件设计方法。
这个想法是将复杂系统分解为有向无环图,并在表示该行为的节点中隐藏循环行为。
Parent 在 boost-con 和 google 上做了演示(来自 boost-con 的表格,第 24 页介绍了这种方法,还有一段google talk 的视频)。
虽然我喜欢这种方法并认为它是一种必要的发展,但我在想象如何处理具有无定形行为的子系统时遇到了问题。
例如,想象一个状态机的通用模式:使用所有状态都支持的接口,并在状态的具体实现中具有不同的行为。
一个人将如何解决这个问题?
请注意,我只是在寻找一种抽象的方法。
我可以考虑将该行为隐藏在节点后面并为状态定义不同的子 DAG,但是如果您想从子 DAG 影响主 DAG 的行为,这会使设计变得相当复杂。
c++ - 模板问题('typename' 不是模板函数参数)
实际上我在用英特尔编译器编译一些库时遇到了问题。
这个库已经用 g++ 正确编译。
问题是由模板引起的。我想了解的是
**typename**
在函数体内声明 as not 模板函数参数和变量声明
例子:
编译这种代码会产生以下错误(intel),(gcc没有声明):我有以下错误
我想了解的是函数体内类型名的用法,参数声明。
前任。:
在不同的文件中我有:
wpf - DataTemplate.DataType = 集合?
有没有办法创建一个处理项目列表的数据模板?
我有 Contact.Phones ( EntityCollection<Phone>
) 并且我希望数据模板处理列表 - 添加删除编辑等。
有没有办法将 DataTemplate 的 DataType 属性设置为 generic EntityCollection<Phone>
?
c# - 很好的泛型介绍
迫于优势,我正在寻找一种将泛型编程集成到我当前的编程风格中的方法。我想在 C# 中使用泛型,但在一些日常使用示例中找不到任何好的介绍材料。如果您有使用泛型的经验:您发现哪些资源对学习它们最有用?(书籍、文章等……)
c++ - 使用 STL 和一元函数适配函子检查列表成员资格
我试图编写一个简短的实用函子,它接受两个 std::pair 项目并测试它们的相等性,但忽略元素的顺序。此外(这是我遇到麻烦的地方)我编写了一个函数来获取这些 std::pair 项目的容器并测试容器中给定对参数的成员资格。
我想不出一种允许通用容器选择的干净方法,所以我现在将 std::vector 硬编码为容器类型。对使容器类型通用的帮助也将不胜感激,但现在我只想让上面的内容编译和工作。我得到的错误是:
按照建议通过添加“类型名称”来更改代码只会导致以下错误:
haskell - 在处理许多不相关的类型时避免样板
我正在编写处理来自Language.Exts.Annotated.Syntax的值的代码,其中定义了反映 Haskell 模块结构的各种类型:
我希望能够编写遍历这些数据结构并对它们执行各种转换的函数。因为没有一种通用的数据类型,所以我不能编写一个可以做所有事情的函数。
到目前为止,我已经编写了一个Tree
包含这些类型的类型,以便我的转换函数可以执行以下操作Tree l -> Tree l
:
但是,我现在发现自己编写了很多代码,这些代码需要 a Module
,包装它ModuleT
,调用一个函数,然后将结果Module
再次解包。我有:
两个问题:
- 鉴于我无法更改 Language.Exts.Annotated.Syntax 中的类型,我是不是走错了路?
- 如果没有,我可以以某种方式减少所有这些样板吗?
haskell - 模棱两可的类型变量
与我之前关于遍历数据结构的问题相关,当我将代码与 uniplate 包一起使用时,我遇到了使代码通用的问题。我正在处理Language.Exts.Annotated.Syntax模块中的数据结构,它们都是具有类型参数的泛型l
。这l
在整个树中都是一样的。
我正在编写的代码是这样的:
此代码在最后两行都产生以下错误:
我可以理解为什么这段代码是模棱两可的:transformBi
接受 a(to -> to)
并将from
其转换为from
; l
就我而言, inChild1 l
和l
in之间没有联系Parent l
。我没有看到如何解决它。我尝试添加类似的类型约束transformBi (doInt :: Child1 l -> Child1 l)
,但我得到了同样的错误;l
当我这样做时,就好像我正在引入一个新的。
如何告诉编译器我l
对replace
,transformBi doInt
和使用相同的transformBi doString
?
编辑: 这是演示我在做什么的完整程序。在 GHC 6.10.4 下,该程序编译失败,出现上述错误。
java - Java 泛型类和通配符
我在java中遇到了泛型类的问题。
我有这门课:
此类的实现可以是:
ConcreteItem 只是一个扩展 AbstractItem (抽象的)的简单类。
所以 MyChildClass 有一个 ConcreteItem ,我可以使用:
好的,目前一切都很好。这是问题所在:
现在我想从集合中提取 MyMotherClass 的一个实例并设置它的项目(类型未知):
如果我这样做,它就会运行。但我有警告,因为 MyMotherClass 是泛型类型,我不使用泛型类型。但我不知道我提取的孩子是哪种类型,所以我想使用通配符:
这就是问题所在:我有一个编译错误,上面写着:MyMotherClass 类型中的方法 setItem(capture#1-of ?) 不适用于参数(AbstractItem)
当我尝试使用继承的通配符时,同样的问题:
我能做些什么 ?
感谢并为我不太流利的英语感到抱歉;)