1.params关键字
static int Add(params int[] i){
return 0;
}
当调用Add方法时,被params修饰的参数,可以传递,也可以不传递.
Add();//这样是对的
Add(new int[]{1,2,3,4,54});//这样也是对的
Add(1,2,3,4,5,6,7);//这样也是可以的
Add(1,2,34,5,56,new int[]{1,2,3,4,5});//这样就错了,因为这个是两种参数了,
static int Avg(int i,params int[] j);{
return 0;
}
//这样声明是对的,但是如果被params修饰的参数不放在最后面的话,就错了, 例:static int Avg(params int[] i,int a):这样就错了
//一个方法的声明只能有一个params关键字
2.out ref关键字
方法声明
static void max(ref int i){};//ref
static void min(out int j);//out
方法调用
int i=5;
int j;
max(ref i);//ref传递的值必须是被赋值的变量,如果在方法中,i被赋值,那么i就会被改变
min(out j )//和ref的区别就是变量无需被赋值就可以使用
3.virtual 虚方法 关键字
class c1{
public virtual void virtualMethod(){
//虚方法
}
}
class c2:c1{
public override void virtualMethod(){
//可以做别的事
}
}
//c2继承了c1 但是只有虚方法才能被重写,如果不是虚方法无法被重写 ,
//虚方法要在返回值前加上"virtual"关键字 ,重写的方法 要在返回值前加上override关键字 如果不加上override,不承认重写
4.sealed 封闭关键字 不能在父类中加 public virtual sealed void virtualMethod() 这样的格式不被允许
以上面virtual关键字为例,如果在class2重写的方法里加入sealed关键字,那么该方法在继承class2的类中是无法再被重写的 格式:public override sealed void virtualMethod()
5.extern DllImport 引用外部方法
namespace 引用外部方法
{
class Program
{
[DllImport("User32.dll")]//引入外部组件
public static extern int MessageBox(int h,string m,string c,int type);//只写出来就好了,这个就是引入外部方法
static int Main(string[] args)
{
Console.Write("请输入名字:");
string name = Console.ReadLine();
return MessageBox(0,"提示框内容:欢迎你:"+name,"提示框标题",0);
}
}
}
6.partial 分部方法,分部类
就是在方法或者类前加上 partial修饰符 分部类其实就是一个类拆成多个, 但是两个类里的各种属性或者方法是通用的,当然分部方法除外
两个类可以看作是一个类,除了分部方法外的,都可以通用,也可以在上面的声明分部方法,在下面的分部类实现
namespace 引用外部方法 { class Program {partial class class1{public void add(){};
//在这里不能直接用strings 需要实例化class1后才可以调用
}
partial class class1{partial void stirngs();//分部方法需要先定义 后实现 partial void strings(){//具体的实现}//在这里可以用add();} 7.方法的重载7.1.在同一类中
7.2.方法名相同
7.3.参数顺序,数量不同
7.4.与返回值无关
其实没什么好说的,就是一个方法名,多种逻辑运算
public int add(){return 0;}
publci int add(int i,intj){ return i+j;}