代码重用
static int InputNum(int max)
{
#region 没有重用
//for (int i = 0; i <= max; i++)
//{
// Console.WriteLine(i);
//}
//Console.ReadKey();
#endregion
return InputNum(0, max);
}
static int InputNum()
{
#region 没有考虑重用
//string str = "";
//int num = 0;
//while (true)
//{
// str = Console.ReadLine();
// if (int.TryParse(str, out num))
// {
// break;
// }
// else
// {
// Console.WriteLine("输入有误,重新输入:");
// }
//}
//return num;
#endregion
return InputNum(int.MinValue,int.MaxValue);
}
static int InputNum(int min, int max)
{
string str = "";
int num = 0;
while (true)
{
str = Console.ReadLine();
try
{
num = Convert.ToInt32(str);
if (num >= min && num <= max)
{
break;
}
else
{
if (num < min)
{
Console.WriteLine("小于范围");
}
else
{
Console.WriteLine("大于范围");
}
}
}
catch(Exception ex)
{
throw ex;
}
}
return num;
}
方法重载
方法的重载并不是一个方法
实际上方法重载就是一些不同的方法,目的是方便程序员编码,所以将功能相近的方法命名相同
根据参数,编译器自动去匹配方法体,而不需要程序员记住所有的方法
如何判断重载写的对不对
->将方法的定义拿出来,去掉修饰符,去掉方法体,去掉返回类型
InputNum()
InputNum(int max)
InputNum(int min,int max)
->将参数列表的局部变量名去掉,只留类型
InputNum()
InputNum(int)
InputNum(int,int)
===========================================================
继承
单根性、传递性、派生于object类(C#)
在创建对象的时候,好像是先调用 父类的构造方法,在调用子类的构造方法
在调用构造方法的时候,其实默认有一个base(),调用了父类的无参构造方法
->this关键字
->表示当前类
->表示当前构造方法(指定先调用哪一个当前类的构造方法)
->base关键字
->表示父类
->表示父类构造方法(指定首先调用哪一个父类构造方法)
=======================================
成员访问修饰符
internal 与 public 在当前项目下,似乎都是一样的
internal 当前项目
protected internal
类的访问修饰符
public internal
访问级别约束中第2条
字段与属性的访问级别不能高于对应成员的访问级别(就是指类型为internal,但是写的一个public 类中包含该类型的字段或属性)
在不同的项目中访问的思路
internal class M
{
}
public class N
{
public M m;
}
========================================
父类与子类方法同名_隐藏基类方法(一个环境在不同状态下,方法的实现)
1、子类直接赋值给父类(隐藏看类型)(子类对象可以 直接转化为 父类对象)
MyBase myBase = new MySub();
((MyBase)sub).Func();sub.Func();
new 则隐藏,over 重写
隐藏看类型,重写只管新
2、如果满足第一个条件的父类对象,可以强制转化为原来的子类对象
protocal = new iPhone();
iPhone i = (iPhone)protocal;
{
父类 父类对象 = new 子类();
...
子类 子类对象 = (子类)父类对象;}
子类 子类对象 = (子类)父类对象;
}
重载是伪多态
==============================================
使用ref和out都可以将参数传入方法,并保留在方法中对参数赋值时的影响
即参数在方法中被修改了,方法结束后,结果仍然保留方法中最后一次修改的值
ref reference 引用表示方法中用的是变量的引用,就是快捷方式
out 参数用来输出,即方法中对变量的修改就是为了让其输出到外边
ref 使用时要赋值
out 方法中要赋值
转载于:https://www.cnblogs.com/wiewookahn/archive/2012/05/27/2520343.html