zoukankan      html  css  js  c++  java
  • C#笔记 函数(通俗易懂)

    某些特定的函数叫方法!这里要注意

    函数的作用就是当使用很多重复出现的代码的时候,可能需要修改部门代码,导致错误,所以引用函数。

    对不同的数据执行相同的操作-函数。

    class Program
    {
    static void Speaking() //静态无返回值无参数的函数,static具有全局变量
    {
    Console.WriteLine("I can Speaking!");
    }
    static void Main(string[] args)
    {
    Speaking(); //调用函数
    }
    }



    Main()函数是应用程序的入口函数点,当运行C#程序的时候就会调用它包含的入口点函数,这个函数执行完毕,程序就终止了,所以所有程序都必须有一个入口点。
    返回值是有数据类型的,void关键字无返回值
    结束函数执行是return,意思就是把返回值传送给调用函数的变量。

    class Program
    {
    static int number() //带返回值的函数
    {
    return 1;//这里的1就是返回类型,可以和Int一样,也可以是隐式转换的类型
    }
    static void Main(string[] args)
    {
    int i = number();
    Console.WriteLine(i);
    }
    }




    比较例子1与例子2:
    例子1:

    class Program
    {
    static int value(int i)//定义一个带参数的函数
    {
    if (i >= 0)
    {
    i++;

    }

    if (i < 0)
    {
    i--;
    }
    return i;
    }
    static void Main(string[] args)
    {
    int i = 3;
    i = value(5);
    Console.WriteLine(i);//结果是6
    }
    }




    例子2:

    class Program
    {
    static int value(int i)//定义一个带参数的函数
    {
    if (i >= 0)
    {
    i++;
    return 999;//注意这里,这里直接跳出了函数,所以不管下面的i是什么值,结果都是一个常量
    }

    if (i < 0)
    {
    i--;
    }

    return i;
    }
    static void Main(string[] args)
    {
    int i = 3;
    i = value(5);
    Console.WriteLine(i);//结果是999
    }
    }



    例子3:打印出数组的最大数
    class Program
    {
    static int Max(int[] arry) //带参数的函数
    {
    int max = 0;//初始化最大值为0
    for (int i = 0; i < arry.Length; i++)
    {
    if (max <= arry[i])
    {
    max = arry[i];
    }
    }
    return max;//这里必须写在for循环外面,不然会执行一次就跳出了for循环
    }
    static void Main(string[] args)
    {
    int[] arry = { 1, 5, 15, 65 };//定义一个一维数组
    int maxvalue = Max(arry);//调用函数
    Console.WriteLine(maxvalue);//打印出最大数
    }
    }




    以下是函数(方法参数)params  ref  out


    例子4:计算任何数字的和

    class Program
    {
    static int Max(params int[] arry)//params参数 定义了允许给函数的参数 加int类型的任意个数的数字或者不加参数
    {
    int max = 0;//初始化最大值为0
    foreach (int n in arry)
    {
    max = n + max;//计算增加的任意个数的数字之和
    }
    return max;
    }
    static void Main(string[] args)
    {

    int maxvalue = Max(1,5,15);//调用函数,如果不给函数加参数,和为0
    Console.WriteLine(maxvalue);//打印出最大数为21
    }
    }





    ref参数后的变量限制:
    1.不能使常量 const int number=5;
    2.不能是未初始化的 int number;

    class Program
    {
    static void Change(ref string s)
    {
    s="i am changed!";
    Console.WriteLine(s);

    }
    static void Main(string[] args)
    {
    string s="i am ok!";
    Change(ref s);
    Console.WriteLine(s);//如果不加ref,s是不会被改变的,因为void函数没有返回值

    }
    }




    //为什么要用ref和out参数?
    答:
    1.对于void的函数是无返回值的,可以让它传递值
    2.利用ref和out可以达到返回多个返回值的特点


    案例1:

    class Program
    {
    //输出一个任意数组的最大数和索引值
    static int Max(ref int index,params int[] array)//这里是任意的数组所以我们用params参数
    {
    int max = 0;//给最大值赋值为0
    for(int i=0;i<array.Length;i++)
    {
    if(max<=array[i])
    {
    max=array[i];//把大的数字赋值给max
    index=i;//最大数的索引值
    }


    }
    return max;//因为我们要2个返回值,但是我们有只有1个return,所以 引用了ref
    }
    static void Main(string[] args)
    {
    int max;
    int index = 0;//主意ref必须要初始化,out可以使用未赋值的变量作为参数

    max = Max(ref index, 1, 5, 7, 15);//调用函数
    Console.WriteLine("最大的数是:{0}",max);
    Console.WriteLine("最大数的索引号是{0}",index);
    }
    }














  • 相关阅读:
    springboot项目启动成功后执行一段代码的两种方式
    ELK相关资料整理
    Golang指针解析
    Golang文件操作
    Go Channel介绍
    Go语言new和make的区别
    SpringBoot+AOP实现记录操作日志和异常日志,并保存到数据库
    【面试专栏】Java 阻塞队列
    Linux安装Jenkins并构建SpringBoot工程
    Linux安装git
  • 原文地址:https://www.cnblogs.com/IAmBetter/p/2271640.html
Copyright © 2011-2022 走看看