C#数据类型转换、转迷糊我了 +_+
1、inti;2、strings="hello";3、objecto=s;4、i=(int)o;且不谈论语法对与错、我想弄明白是把谁转换为谁了?左边转换给右边还是右边转换...
1 、 int i;
2 、 string s = "hello";
3 、 object o = s;
4 、 i = (int)o;
且不谈论语法对与错、我想弄明白是把谁转换为谁了?
左边转换给右边 还是右边转换给左边
初学着 还有、当局者迷 别见笑 ⊙﹏⊙b
那 第“3”句 和 第“4”句 是不是都使用了类型转换啊? 展开
2 、 string s = "hello";
3 、 object o = s;
4 、 i = (int)o;
且不谈论语法对与错、我想弄明白是把谁转换为谁了?
左边转换给右边 还是右边转换给左边
初学着 还有、当局者迷 别见笑 ⊙﹏⊙b
那 第“3”句 和 第“4”句 是不是都使用了类型转换啊? 展开
展开全部
其实这段语句语法是对的,但会出现异常,i = (int)o;该转换无效。
但既然你不谈论语法错误,我就跟你解释下这几条语句。
1,2你该了解,1是定义了个整形变量,2是定义了一个字符串变量,并且赋值为“hello”。
3,4条语句其实是.net里面的装箱和拆箱操作。
object是一个总的父类,任何类都是object的子类,所以object o = s;是将变量s赋给它的父类变量,在内存区的表现就是object变量o和String变量s指向了同一内存区,即存储了“hello”的内存区。这就是装箱操作。
4语句即拆箱操作,将object指向的内存区的变量赋给变量i。但由于i是整形变量,所以i是没办法接收String类型的变量的,所以4语句会有异常。
你该仔细去看看装箱拆箱操作的资料,很快就会明白的。
以下就是一个正确的装箱拆箱操作:
class A
{
int a;
}
int i;
A s=new A();
s.a=100;
object o=s;
i=(int)o;
Console.WriteLine(s.a);
Console.WriteLine(i);
你会发现输出的都是100。
希望这些对你有帮助
但既然你不谈论语法错误,我就跟你解释下这几条语句。
1,2你该了解,1是定义了个整形变量,2是定义了一个字符串变量,并且赋值为“hello”。
3,4条语句其实是.net里面的装箱和拆箱操作。
object是一个总的父类,任何类都是object的子类,所以object o = s;是将变量s赋给它的父类变量,在内存区的表现就是object变量o和String变量s指向了同一内存区,即存储了“hello”的内存区。这就是装箱操作。
4语句即拆箱操作,将object指向的内存区的变量赋给变量i。但由于i是整形变量,所以i是没办法接收String类型的变量的,所以4语句会有异常。
你该仔细去看看装箱拆箱操作的资料,很快就会明白的。
以下就是一个正确的装箱拆箱操作:
class A
{
int a;
}
int i;
A s=new A();
s.a=100;
object o=s;
i=(int)o;
Console.WriteLine(s.a);
Console.WriteLine(i);
你会发现输出的都是100。
希望这些对你有帮助
展开全部
第三句说是转换也可以说不是转换,
第四句是用到了类型转换。转换为Int类型。
先s转换为Object,然后又把O转换为Int,
其实 s 不用在转换为Object,s 的本身就是一个Object的类型,你可以直接写为:
int i;
string s = "hello";
i = (int)o;
这个时候在i这里就会出现异常了。会说你数据类型不匹配。
第四句是用到了类型转换。转换为Int类型。
先s转换为Object,然后又把O转换为Int,
其实 s 不用在转换为Object,s 的本身就是一个Object的类型,你可以直接写为:
int i;
string s = "hello";
i = (int)o;
这个时候在i这里就会出现异常了。会说你数据类型不匹配。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先把 声名三个变量 一个是int类型的i ,一个string类型的s
和一个object 的o
把s赋值"hello"
o=s
4第四步错啦啊
怎么能把int 类型的i="hello"????
不能把"hello"赋给i的
是的啊 他们都使用了类型转换
最后的是强制转换
和一个object 的o
把s赋值"hello"
o=s
4第四步错啦啊
怎么能把int 类型的i="hello"????
不能把"hello"赋给i的
是的啊 他们都使用了类型转换
最后的是强制转换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i = (int)o;
这句中,语法上(int)是显示声明将右边的对象 o 转换为整形,然后赋值给左边整形变量 i ,但string 类型是不能转变为整型的,编译时会报错.字符(char)型可以转换为整型,你可以用char型转换成整型,输出结果试试看.
这句中,语法上(int)是显示声明将右边的对象 o 转换为整形,然后赋值给左边整形变量 i ,但string 类型是不能转变为整型的,编译时会报错.字符(char)型可以转换为整型,你可以用char型转换成整型,输出结果试试看.
参考资料: http://www.sousuoba.net
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C#中的装箱与拆箱。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
恩,拆箱和装箱~~~装箱就相当于隐式装换,拆箱显示
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询