方法(函数)

作用:用来重复代码,当我们在一个过程中反复的写了同样的代码,一般情况下,我们就可以把需要重复写的代码定义在方法中,用的时候只需调用即可

语法:

[访问修饰符][static] 返回值类型 方法名([参数])

{

方法体;   //一般情况下,方法定义在类中。

}

关于方法的调用:如果是在静态方法(static修饰的)则使用,类名.方法名();在类中调用本类的方法,可以只写方法名();

注:[ ]中的都可以省略不写,但是用处不同,当没有写访问修饰符时,默认为private。当没有返回值时,返回值类型用void代替。

例:判断用户输入的是否为数字的方法。

[csharp] view plaincopyprint?

  1. public static int ReadInt() //定义一个返回值类型为int的ReadInt方法。
  2. {
  3. int num = 0;
  4. do
  5. {
  6. try
  7. {
  8. num = Convert.ToInt32(Console.ReadLine());//接受用户输入的数字
  9. return num; //当用户输入合法,返回值
  10. }
  11. catch
  12. {
  13. Console.WriteLine("输入有误,请重新输入!");//当用户输入有误时,输出这句话。
  14. }
  15. }
  16. while(true);
  17. }

局部变量:在方法中定义的变量叫局部变量,其作用域从定义开始,到其所在大括号结束为止。

参数(形式参数)

例:

[csharp] view plaincopyprint?

  1. public static void PrintSum(int x,float y) //定义了一个为int类型的变量x和一个float类型的变量y
  2. {·····}

注:形参是声明在方法的参数列表中的,而不是方法体中的本地变量。如果一个方法一旦有一个参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型须一致

定义数组参数的语法:

[访问修饰符] [static] 返回值类型 方法名(params  int [ ] 数组名)

例:

[csharp] view plaincopyprint?

  1. public static void Sum(params int [] sscore)

返回值

方法可以向调用代码返回一个值,返回的值被插入到调用代码中发起调用的表达式所在的位置。

注:要返回值,方法必须在方法名前声明一个返回类型,如果方法不返回值,他必须声明void返回类型。

例:

[csharp] view plaincopyprint?

  1. int number(){...} //定义了一个需要返回int类型的方法。
  2. void number(){...}//定义了一个不许要返回值的方法。

而声明了有返回类型的方法则须使用return来返回值。

例:

[csharp] view plaincopyprint?

  1. //写一个让用户判断y或n的方法。
  2. public static string ReadAnswer()//定义一个返回值为string的ReadAnswer的方法。
  3. {
  4. string answer = "";
  5. do
  6. {
  7. answer = Console.ReadLine();
  8. if (answer != "Y" && answer != "N")
  9. {
  10. Console.WriteLine("你的输入有误请重新输入!");
  11. }
  12. }
  13. while (answer != "Y" && answer != "N");//如果用户输入的不是Y或者N则一直循环提示,如果是Y和N则跳出循环。
  14. return answer; //返回值。
  15. }

方法的重载

一般在同一个类中,方法名相同,并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法的重载。

注:方法重载和返回值没有关系。

例:

[csharp] view plaincopyprint?

  1. public static void SayHello(string name )
  2. {
  3. Console.WriteLine("我是{0}",name);
  4. }
  5. public static void SayHello(int age)
  6. {
  7. Console.WriteLine("我今年{0}岁了。",age);
  8. }

 out 和ref

方法只能返回一个值,当需要返回多个值的时候,我们就要用利用out和ref来返回多个值.

注意:使用ref前必须对变量赋值,out不用。
out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。

例:

[csharp] view plaincopyprint?

 
    1. static void outTest(out int x, out int y)
    2. {
    3. //离开这个函数前,必须对x和y赋值,否则会报错。
    4. //y = x;
    5. //上面这行会报错,因为使用了out后,x和y都清空了,需要重新赋值,即使调用函数前赋过值也不行
    6. x = 1;
    7. y = 2;
    8. }
    9. static void refTest(ref int x, ref int y)
    10. {
    11. x = 1;  y = x;
    12. }
    13. static void Main(string[] args)
    14. {
    15. int a,b;  //out使用前,变量可以不赋值
    16. outTest(out a, out b);
    17. Console.WriteLine("a={0};b={1}",a,b);
    18. int c=11,d=22;
    19. outTest(out c, out d);
    20. Console.WriteLine("c={0};d={1}", c, d);
    21. int m,n;
    22. //refTest(ref m, ref n);
    23. //上面这行会出错,ref使用前,变量必须赋值
    24. int o=11,p=22;
    25. refTest(ref o, ref p);
    26. Console.WriteLine("o={0};p={1}",o,p);
    27. }

黑马程序员-------.net基础知识五的更多相关文章

  1. 黑马程序员_JAVA基础知识总结3

    ------- android培训.java培训.期待与您交流! ---------- Java源文件的扩展名是.java,编译之后生成.class的文件.所有的类都有一个共同的继承祖先Object类 ...

  2. 黑马程序员_JAVA基础知识总结2

    ------- android培训.java培训.期待与您交流! ---------- IDE ---> Itegrity Development Environment Java EE --- ...

  3. 黑马程序员-------.net基础知识四

    常量(静态常量------compile-time) 语法:const 类型 常量名 =常量值: 例: [csharp] view plaincopyprint? { const double PI= ...

  4. 黑马程序员-------.net基础知识二

    变量 变量代表着一块内存空间,我们可以通过变量名称想内存存/取数据,有变量就不需要我们记忆复杂的内存地址. 向内存中申请一块内存空间的语法:   数据类型 变量名; 变量类型 变量类型 存储位置 自动 ...

  5. 黑马程序员-------.net基础知识三

    条件执行语句 if 语句 语法: [csharp] view plaincopyprint? if(条件) { 语句1;语句2:语句3: ··· } 执行过程: 先判断条件是否为true ,如果为tr ...

  6. 黑马程序员-------.net基础知识一

    一 初识.net  .net是一种多语言的编程平台,可以用多达几十种的语言来进行开发,而C#就是基于.net平台的其中一种开发语言. 它的特点是: ⒈多平台:该系统可以在广泛的计算机上运行,包括从服务 ...

  7. 黑马程序员+SQL基础(上)

    黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...

  8. 黑马程序员+Winform基础(上)

    黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...

  9. 黑马程序员_Java基础视频-深入浅出精华版--PPT 文件列表

    \day01\code\第一章_Java概述.ppt;\day01\resource\资料\50道编程题(有精力的同学看看).doc;\day01\resource\资料\Sun_Java程序员认证考 ...

随机推荐

  1. JAVA编程心得-多态设计初步

    面向对象的思想中,封装,继承,多态作为特性会在开发中广泛应用,一个健壮的系统除了功能强大以外,它的可扩展性应该也很强,多态恰好应用了这个思路. 下面我以杨小聪去某地的方式为例,我们知道首先杨小聪要去某 ...

  2. 关于模拟器不能运行项目问题:Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

    我有一个习惯,当做完某一项功能时就想试试运行效果.所以一个程序完成前会运行无数遍.但是有时会出现不能运行的问题,并且这个问题不是来自项目的错误,显示器显示如下错误: [2013-08-31 08:45 ...

  3. PullToRefreshScrollView 修改下拉刷新图标

    我的修改比较简单暴力.网上查了一番,貌似大家都没有改,无奈,查了一下源码.发现如下资源目录: 在看看我们的布局文件,此三个图片就是下拉刷新的三种图标 好吧,flip就是我目前的下拉刷新图片,对应的也就 ...

  4. CentOS7上安装Pycharm

    下载pycharm $ wget https://download.jetbrains.com/python/pycharm-professional-2016.1.2.tar.gz 解压 $ .ta ...

  5. Windows Thrift安装及HelloWorld

    Thrift是一个facebook开源的高效RPC框架,其主要特点是跨语言及二进制高效传输(除了二进制,也支持json等常用序列化机制),官网地址:http://thrift.apache.org 跨 ...

  6. 万网免费主机wordpress快速建站教程-万网主机申请

    很多小伙伴在万网的免费主机申请活动中建立起了自己的个人网站,但还是还有许多小伙伴现在想建站,却发现官网找不到免费主机的申请地址了,以为活动结束了?其实还是可以继续申请免费主机的,接下来小编给大家介绍如 ...

  7. java Spring bean作用域

    1. Singleton作用域 当一个bean的作用域为singleton, 那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则 ...

  8. C#类和成员定义

    1 定义类     C#用关键字class来定义类.默认情况下,类声明为内部(internal)的,即只有当前项目中的代码才能访问它.与之相对应的,还可以用public关键字来修饰,这样该类还可以由其 ...

  9. Visual C++ 打印编程技术-编程基础-获取打印机

    标准方法是用: EnumPrinters() 函数获取 #define PRINTER_ENUM_DEFAULT 0x00000001 #define PRINTER_ENUM_LOCAL 0x000 ...

  10. oracle_11g 不同用户之间的数据迁移

    众所周知,IMP工具的FROMUSER和TOUSER参数可以实现将一个用户的的数据迁移到另外一个用户.同样的功能在IMPPDP工具中如何得以体现呢?答案就是:使用IMPPDP的REMAP_SCHEMA ...