问题标签 [generics]
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# - Dynamically Create a generic type for template
I'm programming WCF using the ChannelFactory which expects a type in order to call the CreateChannel method. For example:
In my case I'm doing routing so I don't know what type my channel factory will be using. I can parse a message header to determine the type but I hit a brick wall there because even if I have an instance of Type I can't pass that where ChannelFactory expects a generic type.
Another way of restating this problem in very simple terms would be that I'm attempting to do something like this:
Is there an approach to this I can leverage within C#?
java - 如何获取参数化的类实例
由于引入了泛型,Class 被参数化,因此 List.class 产生 Class<List>。这很清楚。
我无法弄清楚的是如何获得一个自身参数化的类的实例,即 Class<List<String>>。就像在这个片段中一样:
我经常遇到这个问题的变体,但我仍然不知道是我错过了什么,还是真的没有更好的方法。感谢您的建议。
c# - 泛型有什么好处,为什么要使用它们?
我想我会把这个垒球提供给任何想把它打出公园的人。什么是泛型,泛型的优点是什么,为什么,在哪里,如何使用它们?请保持相当基本。谢谢。
c# - 创建将 T 限制为枚举的通用方法
我正在构建一个函数来扩展这个Enum.Parse
概念
- 允许在未找到 Enum 值的情况下解析默认值
- 不区分大小写
所以我写了以下内容:
我得到一个错误约束不能是特殊类System.Enum
。
很公平,但是是否有一种解决方法来允许通用枚举,或者我将不得不模仿该Parse
函数并将类型作为属性传递,这会强制对您的代码进行丑陋的装箱要求。
编辑以下所有建议都非常感谢,谢谢。
已经确定(我已经离开循环以保持不区分大小写 - 我在解析 XML 时使用它)
编辑:(2015 年 2 月 16 日)Christopher Currens在下面的 MSIL 或 F# 中发布了一个编译器强制类型安全的通用解决方案,非常值得一看,并点赞。如果解决方案在页面上进一步冒泡,我将删除此编辑。
编辑 2:(2021 年 4 月 13 日)由于这个问题现在已经得到解决和支持,自 C# 7.3 以来,我已经改变了接受的答案,尽管全面阅读顶级答案对于学术和历史兴趣是值得的 :)
java - 通用方法类型安全
我有NodeType
s和Node
s的概念。ANodeType
是一堆元数据,您可以从中创建Node
实例(很像整个类/对象关系)。
我有各种NodeType
实现和各种节点实现。
在我的 AbstractNodeType (NodeTypes 的顶级)中,我有 ab 抽象createInstance()
方法,一旦由子类实现,它将创建正确的 Node 实例:
在我的NodeType
实现中,我实现了这样的方法:
这一切都很好,但public Thing createInstance()
会产生关于类型安全的警告。具体来说:
类型安全:来自 ThingType 类型的 createInstance() 的返回类型 Thing 需要未经检查的转换以符合来自 AbstractNodeType 类型的 T
我做错了什么导致这样的警告?
我如何重构我的代码来解决这个问题?
@SuppressWarnings("unchecked")
不好,我希望通过正确编码来解决这个问题,而不是忽略问题!
c# - 学习 .NET 泛型的最佳资源?
我从未在工作中使用过任何 .NET 泛型,但我知道它们相当流行。有没有人有任何好的链接或书籍建议来学习它们?作为奖励;我只是模糊地了解.NET 泛型集合是什么以及它们的作用......有没有人有任何实际的例子来说明它们如何比.NET 中的普通集合获得更大的优势?
c# - 如何使用 .Net 泛型来继承模板参数?
我希望能够做到这一点。
这是对象结构
这行得通吗?
c# - 泛型与数组列表
我在这里工作的系统是在 .net 2.0 之前编写的,没有泛型的好处。它最终更新到 2.0,但由于时间限制,没有任何代码被重构。在许多地方,代码使用 ArraysLists 等将事物存储为对象。
从性能的角度来看,更改代码对使用泛型有多重要?我知道从性能的角度来看,装箱和拆箱等,它是低效的,但是改变它真的会有多少性能提升呢?泛型是在前进的基础上使用的东西,还是有足够的性能变化需要良心努力来更新旧代码?