关于类型转换问题

.Net技术 码拜 5年前 (2016-04-29) 514次浏览
在C#中 有如下代码:
object ss = null;
axWinsock1.GetData(ref ss);
string strGet= “”;
strGet = System.Text.ASCIIEncoding.ASCII.GetString(ss);   //此处小括号报错
而在vb.net中

object ss = null;
axWinsock1.GetData(ref ss);
string strGet= “”;
strGet = System.Text.ASCIIEncoding.ASCII.GetString(ss);
运行正常
那么在C#中怎么样改写,得到的功能和VB.net一样,获得ASCII码

解决方案

5

strGet = System.Text.ASCIIEncoding.ASCII.GetString((byte[])ss);    //应该OK

5

1、你的System.Text.ASCIIEncoding.ASCII.GetString((byte[3])ss);  这里不会报错吗?,要把3去掉
2、直接这样定义行吗?var ss=new byte[20];然后后面System.Text.ASCIIEncoding.ASCII.GetString(ss);
3、加断点。定义ss还是object,在axWinsock1.GetData(ref ss);之后加断点,看看能否看到ss的类型,或加上Console.WriteLine(ss.GetType().ToString());

20

axWinsock1.GetData(ref ss);之后
1、Console.WriteLine(ss.ToString())是什么;
2、var tmp =ss as byte[],假如不报错的话,Console.WriteLine(BitConverter.ToString(tmp))是什么?

10

引用:
Quote: 引用:

axWinsock1.GetData(ref ss);之后
1、Console.WriteLine(ss.ToString())是什么;
2、var tmp =ss as byte[],假如不报错的话,Console.WriteLine(BitConverter.ToString(tmp))是什么?

你好,根据你的建议,本人在console这条语句设了断点,单步调试了一下,但是无法调试到这一步,按了单步调试后,弹出form窗体,然后程序就死啦,两条语句都试了一下

加了 Console就不用断点了,看vs的输出窗口的输出内容!


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于类型转换问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)