当前位置:编程学习 > C#/ASP.NET >>

C#.net语句理解

int intAB = 0x16; s1 = intAB.ToString(); //16进制转对应ASCII字符: byte babb = 0x45; string ass = ((char)babb).ToString(); 该如何理解((char)babb).ToString()这句,请详细解释,尤其是char的作用,还有两个括号
答案:string ass = ((char)babb).ToString();
理解:
先将字节类型变量babb中的数据转换为Unicode字符,然后再将此Unicode字符转换为字符串,并赋值到字符串类型变量ass中。
 
括号:第一个括号是char的标准语法,第二个括号,是为了运算过程的正确性,加的保险。 
 
char 的作用参考http://technet.microsoft.com/zh-cn/sysinternals/x9h8tsay(zh-tw).aspx
其他:((char)babb).ToString() 先把byte类型转化为char类型,然后把char类型转化为string类型。 (char)代表显示转换,就是吧你的变量babb转换为char类型的字符
一般转换类型有两种方法,除了.ToString() 
(char)babb  一种
Convert.ToChar(babb) 一种
两个都属于类型转换 0x45表示ASCII码,对应字符-
(char)babb表示把0x45转换为这个字符-
然后把这个字符转换为字符串赋值给ass (char)babb表示字母E,((char)babb).ToString()表示把字母E转换成string格式,这样子就可以显示在label等控件中了,否则是不能直接赋值在label中的。 C#里 char是2个字节的 
而byte是一个字节的 你可以把byte 看做是一个字节的 unsigned char类型


 如果用((byte)babb).ToString() 会将babb的0x45 转成十进制整数69
你用char强转的目的就是将整数69 变成ASCII码显示 字符‘E’

(char)babb是强转 byte到char类型 
再括号 就是 babb已经变成char类型 使用char类型的ToString()方法 

(byte)babb.ToString() 如果不加最外层括号  编译器会认为babb先使用.ToString()方法 (这个是byte类型的方法)返回string类型在强转(char)类型   
编译器会报 “无法将string类型转换为char类型的错误” 
所以括号是必须的 代表着优先级不一样 点运算符优先级高于 强制转换 所以必须加括号

上一个:C#操作excel,现在excel里面有多个sheet,如何能指定保存在某个sheet里面!
下一个:C#中的构造函数、方法重载以及继承与多态详细讲解

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,