当前位置:  开发笔记 > 编程语言 > 正文

c ++ 0x概念和c#约束之间有什么区别?

如何解决《c++0x概念和c#约束之间有什么区别?》经验,为你挑选了1个好方法。

C++ 0x引入了概念,基本上可以定义一种类型.它指定了类型所需的属性.

C#允许您使用" where "子句指定泛型的约束.

它们之间是否存在语义差异?

谢谢.



1> Scott Dorman..:

要记住的一件事是C++模板和C#泛型不完全相同.有关这些差异的更多详细信息,请参阅此答案

从您链接到解释C++ 0x概念的页面,听起来好像是在C++中您希望能够指定模板类型实现某些属性.在C#中,约束比这更进一步,并强制泛型类型为"约束".例如,以下C#代码:

public GenericList where T : IDisposable

表示用于代替T的任何类型都必须实现IDisposable接口.同样,以下代码:

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

public GenericList where T : ABC

表示用于代替T的任何类型必须是ABC类型或从ABC派生.

C++ 0x概念只表示用于代替T的类型必须具有与ABC(或IDisposable)定义的相同属性,而不是必须属于该类型.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有