C#中怎么更好的区别隐式转换和显示转换?
3个回答
2013-07-26
展开全部
隐式转换不需要在代码中指定转换类型,例如:int intNumber = 10;double doubleNumber = intNumber;intNumber会被隐式转换成double类型。显式转换则相反,需要指定转换类型,例如:double doubleNumber = 10.1;int intNumber = (int)doubleNumber; 对于表示数值的基本数据类型来说,数值范围小的数据类型转换成数值范围大的数据类型可以进行隐式转换,而反过来则必须进行显示转换。就像上面的两个例子一样。 对于类类型来说,子类转换成父类可以进行隐式转换,而反过来则必须进行显式转换,例如:string str1 = "abc";object obj = str1; //子类转换成父类,隐式转换string str2 = (string)obj; //父类转换成子类,显式转换 如果两个类之间没有继承关系,则不能进行隐式转换或显式转换,此时必须在被转换的类中定义一个隐式转换方法或显式转换方法。
2013-07-26
展开全部
怎么更好的区别?我不是很明白这个区别是什么意思。。
数据类型转换,没有人为的去转换就叫“隐式转换”
比如:
double a;
int b = 1, c = 2;
a = b + c;//这里b和c转换成double就是隐式的。。
显式的有很多了。。Convert,Parse,和(double) 等等。。
a = Convet.ToDouble(b + c);
a = Double.Parse(b + c);
a = (double)(b + c);
如果有不明白的您可以继续问。。
数据类型转换,没有人为的去转换就叫“隐式转换”
比如:
double a;
int b = 1, c = 2;
a = b + c;//这里b和c转换成double就是隐式的。。
显式的有很多了。。Convert,Parse,和(double) 等等。。
a = Convet.ToDouble(b + c);
a = Double.Parse(b + c);
a = (double)(b + c);
如果有不明白的您可以继续问。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-26
展开全部
没有转换表达式的转换都是隐式转换啊。。。比如double a = 1 ; int类型显示转换成double显示转换就带有啊doubl a=(double)1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询