C# 2.0 --Constraints

原创 2004年06月28日 13:27:00

19.1.1 Constraints

Commonly, a generic class will do more than just store data based on a type parameter. Often, the generic class will want to invoke methods on objects whose type is given by a type parameter. For example, an Add method in a Dictionary<K,V> class might need to compare keys using a CompareTo method:

public class Dictionary<K,V>
{
public void Add(K key, V value)
{
     ...

     if (key.CompareTo(x) < 0) {...}    // Error, no CompareTo method
     ...
}
}

Since the type argument specified for K could be any type, the only members that can be assumed to exist on the key parameter are those declared by type object, such as Equals, GetHashCode, and ToString; a compile-time error therefore occurs in the example above. It is of course possible to cast the key parameter to a type that contains a CompareTo method. For example, the key parameter could be cast to IComparable:

public class Dictionary<K,V>
{
public void Add(K key, V value)
{
     ...

     if (((IComparable)key).CompareTo(x) < 0) {...}
     ...
}
}

While this solution works, it requires a dynamic type check at run-time, which adds overhead. It furthermore defers error reporting to run-time, throwing an InvalidCastException if a key doesn’t implement IComparable.

JAX-RS(REST Web Services)2.0 can not be installed: One or more constraints have not been satisfied

eclipse出错: JAX-RS(REST Web Services)2.0 can not be installed: One or more constraints h
  • washli2001
  • washli2001
  • 2014年06月04日 15:55
  • 3754

Maven项目,右键-update project后报错

Maven项目,右键-update project后报错如下的解决办法: 1、Description Resource Path Location Type Java compiler level d...
  • UP19910522
  • UP19910522
  • 2014年04月24日 21:55
  • 37577

One or more constraints have not been satisfied

导入项目后在 Markers 窗口中看到这个相关错误信息,包括以下四条:Description Resource Path Location Type JavaServer Faces 2.2 can...
  • testcs_dn
  • testcs_dn
  • 2017年10月13日 13:32
  • 529

JavaServer Faces 2.2 can not be installed : One or more constraints have not been satisfied.

在用Maven进行springmvc整合时出现:JavaServer Faces 2.2 can not be installed : One or more constraints have not...
  • xingyuexi87
  • xingyuexi87
  • 2017年08月08日 17:09
  • 586

IOS开发使用 constraints

IOS 开发使用 constraints 确实很方便能解决 布局上的问题 初次使用会有很多疑问但是稍微指点下 发现其实还是很简单。 下面 就距离代码 如何构建 先预定一个目标: 建立一个列表 ...
  • wokaonimama
  • wokaonimama
  • 2016年09月05日 14:12
  • 1433

.net2.0中,C#实现文件压缩和解压缩

因为工作需要所以要用C#写一个压缩解压缩的程序,从网上搜索大概有那么三种方式,1、调用winrar的接口函数来实现,缺点是必须安装winrar所以不具有通用性。2、msdn说的(使用 J# 类库中的 ...
  • xiaoxiaohai123
  • xiaoxiaohai123
  • 2007年06月21日 17:55
  • 2802

C# Kinect 2.0 SDK 学习笔记(0)——基本情况介绍

去年十一的时候凑热闹买了个国行版的Xbox One,玩了一阵子之后开始对摄像头感兴趣,咬咬牙又买了个Adapter,把Kinect二代摄像头接到了电脑上,上网找了很多资料,官方2.0的SDK已经放出,...
  • ivanyoung66
  • ivanyoung66
  • 2015年07月05日 21:39
  • 2099

C# 2.0 新特性

分部类型、泛型、可空值类型、轻量级事务管理器和角色提供程序。
  • ilovewebservice
  • ilovewebservice
  • 2011年03月29日 11:23
  • 1271

Xcode6.1基础布局constraints

我们新建一个项目,打开main.storyboard向其中拖入一个view,修改一下背景色,然后打开“show the size insepector”,查看contrains:如果不给一个view添...
  • myfmyfmyfmyf
  • myfmyfmyfmyf
  • 2015年02月05日 22:41
  • 12937

cascade constraints和purge简述

1、 cascade constraints DROP TABLE ** CASCADE CONSTRAINTS PURGE 假设A为主表(既含有某一主键的表),B为从表(即引用了A的主键作为外键)。...
  • bbqk9
  • bbqk9
  • 2011年04月29日 10:53
  • 4120
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 2.0 --Constraints
举报原因:
原因补充:

(最多只允许输入30个字)