黑马程序员--C#基础
2014-03-23 10:44
232 查看
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重写。
装箱和拆箱是一个抽象的概念;装箱是将值类型转换为引用类型;拆箱是将引用类型转换 为值类型;利用装箱和拆箱功能,可通过值类型的任何值与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#基础视频笔记1
- 黑马程序员_C#基础回顾
- 黑马程序员之C#编程基础学习笔记:提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于10岁,则告知不允许查看,如果大于等于10岁,则提示用户是否继续查看(yes,no),如果输入的是ye
- 黑马程序员_C#的基础结构和语法
- 【黑马程序员】c#面向对象的基础(学习笔记)
- 黑马程序员 C#基础_params
- [黑马程序员]c#基础复习1
- 黑马程序员————————C#基础知识(一)
- 黑马程序员————————C#基础知识之面向对象(二)
- 黑马程序员__c#基础1
- 黑马程序员----C#基础知识07
- 黑马程序员_C#基础知识学习笔记:逻辑表达式
- 黑马程序员---C#多线程基础笔记
- 黑马程序员 自学05C#编程基础之关系运算符与逻辑运算符
- 黑马程序员--C#基础(三)-->运算符,语句,控制台输入输出
- 黑马程序员之C#编程基础学习笔记:提示用户输入两个整数(假设i1,i2)。如果i1,i2都是正数,则将i2的值递增一个数,然后打印i1+i2的值;如果i1,i2都是负数,则将i1的值递减10个数,然后
- 黑马程序员 C#基础流程控制_条件语句
- 黑马程序员——C#基础视频笔记(苏昆老师的视频)
- 黑马程序员 C#基础_方法
- 黑马程序员————————C#基础知识之结构体(二)