函数~~20130922

1、函数的结构
访问修饰符 返回值类型 方法名(参数)
      {
               //方法主体
      }
static void a()//函数头
{
  //函数体
}

2、函数的命名规则
   以动词开始,单词首字母大写,不要使用带下划线的字符

3、修饰符
(1)访问修饰符
     public :公共类型,可被所属类的成员以及不属于类的成员访问
     internal :内部类型,可被当前程序集访问
     protected :保护类型,可被所属类或派生自所属类的类型访问
     private :私有类型,仅所属类的成员才可以访问
  默认的访问修饰符为private
(2)成员修饰符
     abstract 定义抽象函数;
     const  定义常量;
     event  定义事件;
     extern  告诉编译器在外部实现;
     override  定义重载;
     readonly  定义只读属性;
     static  用来声明静态成员;
     virtual  定义虚函数

 

4、返回值
(1)在函数声明中指定返回值的类型,但不使用关键字void。
(2)使用return关键字结束函数的执行,把返回值传给调用代码。
static double GetVal()
{
   return 3.2;
}


5、参数
当函数接受参数时,就必须指定下述内容:
(1)函数在其定义中指定接受的参数列表,以及这些参数和类型。其中可以有任意多个参数,每个参数都有一个类型和一个名称。参数用逗号分隔开。每个参数都在函数的代码中用作一个变量。
(2)在每个函数调用中匹配的参数列表。在调用函数时,必须使参数与函数定义中指定的参数完全匹配,这意味着要匹配参数的类型、个数和顺序。
(3)函数的签名:函数的签名由函数的名称和参数定义。
static int Product(int a,int b)
{
   return a+b;
}


6、可变参数
  c#允许为函数指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中的最后一个参数,称为参数数组。参数数组可以使用个数不定的参数调用函数,它可以使用params关键字来定义。参数是变化的以后你就可以不写那么多函数了,一个函数就可以做好多变化了
有两个限制
(1)这个参数数组只能是最后一个参数
(2)参数数组类型必须是一样的


7、值参数
  把一个值传递给函数使用,函数中此变量的任何修改都不影响函数调用中制定的参数。
  把值参数传入函数后,是把那个值的内容拷贝了一份传入函数的,如果在函数内部修改了这个参数的话,原先的参数值不会变


8、引用参数
  函数处理的变量与函数调用中的使用的变量相同,而不仅仅是值相同的变量。因此对该变量进行的任何修改都会影响到用作参数的变量值,只需要用ref关键字指定其为引用参数。ref变量必须初始化过,而且不能为常量。
  引用参数不用,它传递的的内存地址,也就是同一个东西,如果在函数内部多这个参数修改了,原先的值也会跟着变的

总结:
(1)值参数传递的是值的拷贝,引用参数传递的是值的内存地址
(2)要把值类型也传递地址的话,要使用ref ,out关键字,否则默认是传递的是值的拷贝
(3)对象类型,默认就是传地址,一个地方改了就都变了

 

9、ref ,out关键字的作用和区别
(1)使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。
(2)使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。
(3)out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候


10、委托的概念


11、构造函数
(1)构造函数是类中的一种特殊方法,每次创建类的实例时,都会调用此方法。
(2)构造函数一般用来自动初始化成员变量,但也可以根据需要执行其他的动作。
(3)构造函数与类同名,不返回任何值。
  访问修饰符 类名()
      {
               //构造函数的主体
      }
(4)没有参数的构造函数为默认构造函数,这种构造函数不接受任何参数。
(5)如果类未定义默认构造函数,运行库将自动提供默认构造函数。


12、析构函数
      析构函数是C#的另一种特殊方法,用语执行清楚操作。析构函数不接受任何参数,也不带任何访问修饰符,析构函数主体包括的一些代码通常用于关闭有实例打开的数据库、文件或网络连接等。析构函数在释放对象时被调用,用来在删除对象前做一些清理工作。
      注意:
      一个类只能有一个析构函数。
      析构函数不能重载。
      析构函数不能显示或手动调用,只能有垃圾回收器自动调用。


13、调用方法
    调用c#方法首先要创建对象实例,在用成员访问运算符点来调用方法。
如:对象名.方法名([参数列表]);


14、方法重载
(1)方法共用一个名称但对不同数据执行相似的功能,这种概念称为方法重载,不同的方法根据方法签名来识别,方法签名包括对方法的声明。每个重载方法的方法签名都应该是唯一的。
(2)可根据不同数量的参数来重载方法,每个被重载的方法都有不同的参数
(3)可根据不同类型的参数来重载方法,参数的数量保持不变。


15、静态方法
(1)静态方法就是一个类的所有实例共享的方法
      语法:
(2)访问修饰符 static 返回值类型 方法名(参数列表)
      说明:访问静态方法的时候不需要创建类的实例,采取“类名.方法名”即可,Console.Write()就是Console类的一个静态方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值