godankeyy的解释

2129人阅读
Note(65)
Object类提供了一些virtual方法,例如ToString, GetHashCode, Equals等,通常我们不太体会它的意义。而Dictionary中的Key却需要也帮助我们很好的理解这些方法。
Key满足set属性,即其中的元素不可重复;(应用了Equals方法)Key-Value的映射是通过Key的哈希值来实现的;(应用了GetHashCode方法)
1) string作为key (string虽然是reference type,但这里作为值类型来进行比较是否相等)
string myKey = &TheUniqueKey&;
string myKey2 = &TheUniqueKey&;
Dictionary&string, object& myDictionary = new Dictionary&string, object&();
myDictionary.Add(myKey, new Book { Title = &C#& });
//myDictionary.Add(myKey2, new Book { Title = &VB& });
最后一行会报错,因为myKey与myKey2其实是相等的。
2) Reference type作为key。一种是object没有覆盖Equals方法则以内存地址判断,一种是依赖Equals方法。
internal class Book
public string Title { }
public override string ToString()
public override int GetHashCode()
return Title.GetHashCode();
//public bool Equals(Book other)
if (other == null)
if (this.Title == other.Title)
//public override bool Equals(Object obj)
if (obj == null)
Book personObj = obj as B
if (personObj == null)
return Equals(personObj);
第一种情况:假设没有提供Equals方法即注释掉相应的代码&&
Book csharp=new Book{Title=&C#&};
Book vb=new Book{Title=&C#&};
Dictionary&Book, string& dic = new Dictionary&Book, string&();
dic.Add(csharp, &csharp&);
dic.Add(vb, &vb&);
dic.TryGetValue(csharp, out book);
Console.WriteLine(&The book title is {0}.&,book);
catch (Exception ex)
Console.WriteLine(ex.Message);
The output is &The book title is csharp.&
第二种情况:提供Equals方法
&&&&&&&&& 上述代码会抛出异常,&Unhandled Exception: System.ArgumentException: An item with the same key has already been added.&
3) 注释掉GetHashCode方法不影响此例的映射操作。一个问题就是如果没有此方法.NET是如何计算哈希值的?
&&& 第二个问题就是开发人员最好仔细考虑此方法以便提高Dictionary操作的性能。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:72501次
积分:1825
积分:1825
排名:第14372名
原创:115篇
转载:27篇
评论:238条
(1)(1)(2)(1)(1)(1)(1)(4)(1)(1)(1)(2)(1)(1)(1)(1)(2)(2)(1)(5)(1)(1)(2)(3)(2)(3)(7)(8)(4)(1)(8)(8)(8)(8)(4)(1)(4)(2)(3)(3)(6)(4)(4)(2)(5)(10)It’s an orange解释It’s an orangeIt’s a keySpell it,please求以上英语的中文意思
是个苹果是个钥匙请拼写一下.
为您推荐:
其他类似问题
扫描下载二维码an-entry-with-the-same-key-already-exists是什么意思_百度知道
an-entry-with-the-same-key-already-exists是什么意思
提问者采纳
An entry with the same key already exists已存在相同密钥的条目---请采纳
来自团队:
其他类似问题
为您推荐:
高清图的相关知识
其他1条回答
一个有着相同钥匙的入口已经存在
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁ASCII_百度百科
ASCII(American Standard Code for Information Interchange,信息交换代码)是基于的一套电脑编码系统,主要用于显示现代和其他语言。它是现今最通用的单系统,并等同于标准ISO/IEC 646。请注意,ASCII是American Standard Code for Information Interchange缩写,而不是ASCⅡ(罗马数字2),有很多人在这个地方产生误解。
在计算机中,所有的数据在和运算时都要使用表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了,统一规定了上述常用符号用哪些二进制数来表示。
信息交换代码是由(American National Standard Institute , ANSI )制定的,标准的单字符方案,用于基于的数据。起始于50年代后期,在1967年定案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文标准,它已被(International Organization for Standardization, ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母。
ASCII表述方式
ASCII 码使用指定的7 位或8 位组合来表示128 或256 种可能的。标准ASCII 码也叫基础ASCII码,使用7 位来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊。其中:
0~31及127(共33个)是或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR()、FF(换页)、DEL()、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对显示有不同的影响。
32~126(共95个)是(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
同时还要注意,在标准ASCII中,其最高位(b7)用作。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分和偶校验两种。规定:正确的代码一个中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是,若非偶数,则在最高位b7添1。
后128个称为码。许多基于的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
ASCII标准表
SOH(start of headline)
STX (start of text)
ETX (end of text)
EOT (end of transmission)
ENQ (enquiry)
ACK (acknowledge)
BEL (bell)
BS (backspace)
HT (horizontal tab)
水平制表符
LF (NL line feed, new line)
VT (vertical tab)
垂直制表符
FF (NP form feed, new page)
CR (carriage return)
SO (shift out)
SI (shift in)
DLE (data link escape)
数据链路转义
DC1 (device control 1)
DC2 (device control 2)
DC3 (device control 3)
DC4 (device control 4)
NAK (negative acknowledge)
SYN (synchronous idle)
ETB (end of trans. block)
结束传输块
CAN (cancel)
EM (end of medium)
SUB (substitute)
ESC (escape)
换码(溢出)
FS (file separator)
文件分隔符
GS (group separator)
RS (record separator)
记录分隔符
US (unit separator)
单元分隔符
减号/破折号
电子邮件符号
大写字母A 
小写字母a  
DEL (delete)
ASCII大小规则
1)数字0~9比字母要小。如&7&&&F&;
2)数字0比数字9要小,并按0到9顺序递增。如&3&&&8&
3)字母A比字母Z要小,并按A到Z顺序递增。如&A&&&Z&
4)同个字母的大写字母比小写字母要小。如&A&&&a&。
记住几个常见字母的ASCII码大小:
“换行LF”为0x0A;“回车CR”为0x0D;空格为0x20;&0&为0x30; &A&为0x41;&a&为0x61。
另外还有128-255的ASCII字符。
查询ASCII技巧,方便查询ASCII码对应的字符:新建一个文本文档,按住ALT+要查询的码值(注意,这里是十进制),松开即可显示出对应字符。例如:按住ALT+97,则会显示出'a'。
ASCII国际问题
ASCII是美国标准,所以它不能良好满足其它讲英语国家的需要。例如英国的英镑符号(£)在哪里?
拉丁语字母表重音符号
使用斯拉夫字母表的希腊语、希伯来语、阿拉伯语和俄语。
汉字系统的中国象形汉字,日本和朝鲜。
1967年,国际标准化组织(ISO:International Standards Organization)推荐一个ASCII的变种,
代码0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D“为国家使用保留”,而代码0x5E、0x60和0x7E标为
“当国内要求的特殊字符需要8、9或10个空间位置时,可用于其它图形符号”。这显然不是一个最佳的国际解决方案,
因为这并不能保证一致性。但这却显示了人们如何想尽办法为不同的语言来编码的。
ASCII扩展ASCII
ASCII扩展表
1981年IBM PC ROM256个字符的字符集,即IBM扩展字符集
1985年11 Windows字符集被称作“ANSI字符集”,遵循了ANSI草案和ISO标准(ANSI/ISO-1987,简“Latin 1”。ANSI字符集的最初版本:
1987年4月代码页437,字符的映像代码,出现在3.3
扩展ASCII 字符是从128 到255(0x80-0xff)的字符。
扩展ASCII不再是国际标准。
ASCII双字节
双字节字符集(DBCS:double-byte character set),解决中国、日本和韩国的象形文字符和ASCII的某种兼容性。
DBCS从256代码开始,就像ASCII一样。与任何行为良好的代码页一样,最初的128个代码是ASCII。
然而,较高的128个代码中的某些总是跟随着第二个字节。
这两个字节一起(称作首字节和跟随字节)定义一个字符,通常是一个复杂的象形文字。
ASCII虚拟ASCII值
ESC键VK_ESCAPE (27)
回车键:VK_RETURN (13)
TAB键:VK_TAB (9)
Caps Lock键:VK_CAPITAL (20)
Shift键:VK_SHIFT (16)
Ctrl键:VK_CONTROL (17)
Alt键:VK_MENU (18)
空格键:VK_SPACE (32)
退格键:VK_BACK (8)
左徽标键:VK_LWIN (91)
右徽标键:VK_RWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键:VK_INSERT (45)
Home键:VK_HOME (36)
Page Up:VK_PRIOR (33)
PageDown:VK_NEXT (34)
End键:VK_END (35)
Delete键:VK_DELETE (46)
方向键(←):VK_LEFT (37)
方向键(↑):VK_UP (38)
方向键(→):VK_RIGHT (39)
方向键(↓):VK_DOWN (40)
F1键:VK_F1 (112)
F2键:VK_F2 (113)
F3键:VK_F3 (114)
F4键:VK_F4 (115)
F5键:VK_F5 (116)
F6键:VK_F6 (117)
F7键:VK_F7 (118)
F8键:VK_F8 (119)
F9键:VK_F9 (120)
F10键:VK_F10 (121)
F11键:VK_F11 (122)
F12键:VK_F12 (123)
Num Lock键:VK_NUMLOCK (144)
小键盘0:VK_NUMPAD0 (96)
小键盘1:VK_NUMPAD1 (97)
小键盘2:VK_NUMPAD2 (98)
小键盘3:VK_NUMPAD3 (99)
小键盘4:VK_NUMPAD4 (100)
小键盘5:VK_NUMPAD5 (101)
小键盘6:VK_NUMPAD6 (102)
小键盘7:VK_NUMPAD7 (103)
小键盘8:VK_NUMPAD8 (104)
小键盘9:VK_NUMPAD9 (105)
小键盘。:VK_DECIMAL (110)
小键盘*:VK_MULTIPLY (106)
小键盘+:VK_ADD (107)
小键盘-:VK_SUBTRACT (109)
小键盘/:VK_DIVIDE (111)
:VK_PAUSE (19)
Scroll Lock键:VK_SCROLL (145)
ASCII编程相关
ASCIIPascal
取得ASCII码:Ord(ch)
得到对应字符:Chr(n)
ASCIIVisual Basic
取得ASCII码:Asc(ch)
得到对应字符:Chr(n)
ASCIIPC LOGO 编程
取得ASCII码:asc &(某个字符,如大写的A) (输出答案:65)
ASCII汉字编码
0-127 是7位ASCII 码的范围,是国际标准。
至于汉字,不同的字符集用的ascii 码的范围也不一样,常用的汉字字符集有GB2312-80,GBK,
Big5,unicode 等。下面我重点说一说最常用的GB_2312 的字符集。
GB_2312 字符集是目前最常用的汉字编码标准,windows 95/98/2000 中使用的 GBK字符集 就包含了GB2312,或者说和GB2312 兼容,GB_2312 字符集包含了 6763个的 简体汉字,和682 个标准中文符号。在这个标准中,每个汉字用2个字节来表示,每个字节的ascii码为 161-254 (16 进制A1 - FE),第一个字节 对应于 区码的1-94 区,第二个字节 对应于位码的1-94 位。
161-254 其实很好记忆,大家知道英文字符中,可打印的字符范围为33-126。将 这对 数加上
128(或者说最高位置1),就得到汉字使用的字符的范围。
//GB18030的规范是汉字第一个字节在0x81-0xFE之间,第二个字节位于区间0x40-0x7E以及0x80-0xFE。每个字节转化为整数大于128。
if ((char_temp&=0x81)&&(char_temp&=0xFE))
if(*len&nlen)
*p_temp++=char_
_putch(char_temp);
本词条内容贡献者为
副理事长兼秘书长
中国通信学会
中国通信学会
原武汉邮电科学研究院
中国联通网络技术研究院
工业和信息化部电信研究院互联网中心
副院长兼总工程师
中国移动设计院
首席架构师业务总工程师
中兴通讯股份有限公司
百度公司发展研究中心
中国通信学会科普中国百科科学词条评审专家委员会
中国通信学会是全国通信...
提供资源类型:内容

我要回帖

更多关于 add an ssh key 的文章

 

随机推荐