zoukankan      html  css  js  c++  java
  • C#方法(用法,参数)

    方法:是一种用于实现可以由对象或类执行的计算或操作的成员,是一个已命名的语句集。方法就是把一些相关的语句组织到一起,用来执行一个任务的语句块。比如每个C#程序至少带一个main函数

    1.格式:修饰符  返回值类型  方法名称 (参数列表)

    {

    方法体

    }

    2.每个方法都有一个名称和一个主体

        方法名称:是一个有意义的标识符,应当描述出方法的用途。

        方法主体:包含了调用方法时实际执行的语句

        修饰符:public ,private, static等等

        返回值类型:void, int ,double等等

        参数列表可为数组

    3.用户可以为大多数方法提供一些数据来进行处理,并让其返回一些信息(通常是处理结果)

    下面是方法的各个元素:

    • Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。
    • Return type:返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为 void
    • Method name:方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。
    • Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。
    • Method body:方法主体,包含了完成任务所需的指令集。

    For example

            //编写一个方法用于计算给定整型数组元素的和
            static int Add(params int[] nums)
            {
                int sum = 0;
                foreach (int outnum in nums) sum += outnum;
                return sum;
            }
            static void Main(string[] args)
            {
                int[] myintArry = { 1, 2, 3, 4, 5 };
                Console.WriteLine(Add(myintArry));
                Console.ReadKey();

    当调用带有参数的方法时,您需要向方法传递参数。在 C# 中,有三种向方法传递参数的方式:值类型,引用类型,输出类型

    值类型:传值给方法,方法中的变量修改不影响参数列表,复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。

    For example

           //编写一个方法用于求平方(没有返回值)
            static void Square(int num)
            {
                num *= num;
                Console.WriteLine("num平方="+num);
    
            }
            static void Main(string[] args)
            {
                int num = 10;
                Console.WriteLine(num);
                Square(num);
                Console.WriteLine(num);
                Console.ReadKey();

    引用类型:这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改变时,同时也改变实参的值。

    ref关键词指定,使用:1.调用函数变量必须非常量;2.调用变量必须初始化。

    For example

            //编写一个方法用于求平方(没有返回值)
            static void Square(ref int num)
            {
                num *= num;
                Console.WriteLine("num平方="+num);
    
            }
            static void Main(string[] args)
            {
                int num = 10;
                Console.WriteLine(num);
                Square( ref num);
                Console.WriteLine(num);
                Console.ReadKey();

    输出参数:可以返回多个值

    1.执行方式与ref完全一样,关键字为out

    For example

           //编写一个方法用于计算输出数组中最大的值
            static int MaxNum(int[] nums, out int MaxNumIndex)
            {
                int maxNum = nums[0];
                MaxNumIndex = 0;
                for (int i = 0; i < nums.Length; i++)
                {
                    if (maxNum < nums[i])
                        maxNum = nums[i];
                        MaxNumIndex = i;
                }
                 return maxNum;
            }
            static void Main(string[] args)
            {
                //int[] a= { 1, 2, 3, 4, 5 ,6};
                //Console.WriteLine(Add(a));
                //Console.ReadKey();
                int[] a = {1,2,3,5,6,8,9,11};
                int MaxNumIndex;
                Console.WriteLine("最大值max={0},最大值索引是{1}",MaxNum(a,out MaxNumIndex),MaxNumIndex);
                Console.ReadKey();

    注:输出变量与引用变量的区别

    1.未初始化的变量用作ref非法,而out合法

    2.函数调用out参数量,必须把它当作尚未赋值(即可以把已赋值的变量当作out参数,但存储在该变量中的值在方法执行时会丢失)

    3.ref,out必须在调用及定义方法时声明

    Copyright@libaichen 287944304@qq.com
  • 相关阅读:
    python线程详解
    Beego框架在模板中使用自定义函数
    golang打印英文格式时间日期
    如何让SQL语句不执行默认排序,而是按照in语句的顺序返回结果
    Git clone 报错 Unable to negotiate with xxx.xxx.xxx.xxx port 12345: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc
    Mysql去掉html标签函数
    Nodejs的npm安装模块时候报错:npm ERR! Error: CERT_UNTRUSTED的解决方法
    树莓派使用DHT11温湿度传感器
    ubuntu源列表(清华,阿里,官方,选一即可)
    将tgz文件解压到指定目录
  • 原文地址:https://www.cnblogs.com/liberal/p/10792463.html
Copyright © 2011-2022 走看看