C++0x介绍 概念, 那让你定义,基本上,一种类型的类型。 它指定的性质所需要的类型.

C#让你指定的 限制 一般用"哪里"条款。

是否有任何的语义之间的差异?

谢谢你。

有帮助吗?

解决方案

有一点要记住的是,C ++模板和C#泛型是不完全一样的。看到此回答以上这些差异的更多细节。

从您链接到解释的C ++ 0x概念的网页,这听起来像的想法是,在C ++中,你希望能够指定模板类型实现的某些属性。在C#中,约束远不至于此,并迫使通用类型为“的”该约束。例如,以下C#代码:

public GenericList<T> where T : IDisposable

说,在地方Ť的中使用的任何类型必须实现IDisposable接口。同样地,下面的代码:

public abstract class ABC {}
public class XYZ : ABC {}

public GenericList<T> where T : ABC

说,在代替的T中使用的任何类型的类型必须是ABC的或从ABC的。

在的C ++ 0x概念想法只说代替的T中使用的类型必须具有相同的属性由ABC(或IDisposable接口)定义的不,它必须是该类型的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top