1.装箱与拆箱
装箱和拆箱是一个抽象的概念;装箱是将值类型转换为引用类型;拆箱是将引用类型转换 为值类型;利用装箱和拆箱功能,可通过值类型的任何值与Object类型的值互相转换,将值类型与引用类型链接起来。
例如:
int val = 100;
object obj = val;
Console.WriteLine (“对象的值 = {0}", obj);
这是一个装箱的过程,是将值类型转换为引用类型的过程
int val = 100;
object obj = val;
int num = (int) obj;
Console.WriteLine ("num: {0}", num);
这是一个拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程
3.方法的out参数与ref参数
out是内部为外部变量赋值,out一般用在函数需要有多个返回值的场所。
>>1在方法的参数类型前加out,那么传参数的时候,也必须在number前加out表明这 个参数不是传入的,那么在传入前可以不赋初值。
>>2如果参数是以out形式传入的,那么在传入前可以不赋初值。
>>3在方法中对于由out修饰的参数,必须赋值,并且必须在使用前赋值。
实例:
class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val);
}
}
class OutExample
{
static void Method(out int i)
{
i = 44;
}
static void Main()
{
int value;
Method(out value);
}
}
4、关于异常问题
实例:
try
{
//将字符串转换为数字类型
double a = double.Parse(txtNum1.Text);
double b = double.Parse(txtNum2.Text);
if (a > b)
{
MessageBox.Show("错误");
}
txtSum.Text = (a + b).ToString();//求和的结果
}
catch (Exception)//不是数字的其他情况
{
MessageBox.Show("错误,请输入数字");
}
5、显示实现与实现的区别
访问修饰符不一样,显示实现时默认(private),实现是public
限定词不一样,显示实现的时候,会将方法的接口名称显示出来,实现的时候不显示方法的接口名称
当类中实现的多个接口中,有些接口的方法名称相同,这时,需要使用显示实现一个类继承一个类,实现多接口
6、虚方法和抽象方法的区别
抽象方法只有声明没有实现,需要在子类中实现;虚拟方法有声明和实现,并且可以在子类中覆盖,也可以不覆盖使用父类的默认实现;虚拟方法有实现代码 ,抽象方法则没有, 并且抽象类不能被实例化,只能实例化实现了全部抽象方法的派生类 ;抽象方法是虚拟方法的一种;抽象方法没有实现,它的存在只是为派生类统一接口;派生类应该实现这个方法 如果编写一个基类,它永远不会被实现,那么就应该将这个类中的一个或多个方法定义为抽象方法,只允许在抽象类中使用抽象方法声明;虚方法与多态性关系密切,虚方法允许派生类完全或部分重写该类的方法,需写方法体。抽象类中可以包含抽象方法与一般的方法,抽象类不可以new,抽象方法只是一个定义,没有方法体,也就是没有{},也不要在里面写内容。它们两个相像的一点是都用override重写。
本文详细介绍了C#中的装箱与拆箱概念、方法的out参数与ref参数使用方法、异常处理技巧、显示实现与实现的区别以及虚方法和抽象方法的区别。
2121

被折叠的 条评论
为什么被折叠?



