最近开始补充基础,自己也理解了不少,还是望大家各述其见
今天开始每天发一贴请教大家~1, string i="2";
转换 int.Parse(i) 和 (int)i 和 Convert.ToInt32(i) 之间的区别,使用时候需要注意些什么?2, is 和 as 使用上应该注意些什么? protected void btnClick(object sender,eventargs e)
{
string btnID=((button)sender).ID;
string btnID=(sender as Button).ID;
俩句有什么区别? 习惯上使用 as 但是应该如何判断?
}3,==比较和 equals的区别?
今天开始每天发一贴请教大家~1, string i="2";
转换 int.Parse(i) 和 (int)i 和 Convert.ToInt32(i) 之间的区别,使用时候需要注意些什么?2, is 和 as 使用上应该注意些什么? protected void btnClick(object sender,eventargs e)
{
string btnID=((button)sender).ID;
string btnID=(sender as Button).ID;
俩句有什么区别? 习惯上使用 as 但是应该如何判断?
}3,==比较和 equals的区别?
(int)i 这样做不对吧?没见过
int.Parse(i)
Convert.ToInt32(i)单就这样的调用方式(因为它有多个重载),个人认为是一样的
as不是强制转换...当不能转换时,不会抛出异常~
(button)sender在不能转换时,会抛出异常...
3.
有时候equals的性能要好...呵呵...
好像 == 比较时,有时会创建新的对象?
一起学习~
string btnID=(sender as Button).ID; sender as Button,如果sender不是button类型,不会出异常的,只返回null比较常用
另一个则会出异常
然后将你学习的结果贴出来,给大伙分享是最好的基础补充方式
”==”和”Equals”最主要的区别是多态.
(int)是一种类型转换
int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。
Convert.ToInt32()是一种类容转换;但它不限于将字符串转为int类型,还可以是其它类型的参数;
is运算符检查对象是否与特定的类型兼容,
as运算符用于执行引用类型的显示类型转换,如果不兼容是返回值null;
—————————————————————————————————————————————
(button)sender是强制转换,当转换失败时抛出异常,
sender as button为非强制转换,当转换失败时不会抛出异常;
—————————————————————————————————————————————
Equals()方法是虚拟的,因此可以在类中重写,是按值类型来比较对象的,
==/!=比较运算符是比较对象是bool类型的;
—————————————————————————————————————————————