zoukankan      html  css  js  c++  java
  • C# 函数

     

    1,传值和传引用

    代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication3
    {
        class Program
        {
            static void Main(string[] args)
            {
                string  a = "NiHao";
                SayAWord(a);//传值
                Console.WriteLine("This Word is {0}", a);
                SayAWordAndEditWord(ref a);//传引用
                Console.WriteLine("This Word is {0}", a);
    
            }
            static void SayAWord(string word)//值参数
            {
                Console.WriteLine(word);
                word = "hahaha";
            }
            static void SayAWordAndEditWord(ref string word) //引用参数
            {
                Console.WriteLine(word);
                word = "hahaha";
            }
        }
    }
     

    运行结果:

    tmp47

    注意:ref参数使用前必须初始化,ref引用必须变量 const int myNumber = 5; myNumber 就不行,因为是常数。

    2,返回的另外一种方式。

    除了用return方式返回值外,还可以用out方式返回调用结果

    代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication3
    {
        class Program
        {
            static void Main(string[] args)
            {
                string  a = "NiHao";
                string  b;
                SayAWord(a,out b);  //out方式可以不用初始化变量哦
                Console.WriteLine("This Word is {0}", a);
                SayAWordAndEditWord(ref a);
                Console.WriteLine(b);
                Console.WriteLine("This Word is {0}", a);
    
            }
            static void SayAWord(string word,out string RtnValue)//不管是调用的时候还是定义的时候都不能忘了加上out字样,不然你就out咯!
            {
                Console.WriteLine(word);
                word = "hahaha";
                RtnValue = "OK";
            }
            static void SayAWordAndEditWord(ref string word) //引用参数
            {
                Console.WriteLine(word);
                word = "hahaha";
            }
        }
    }
    

    运行结果:

    tmp51

    3,使用委托来调用函数

    委托是一种可以把引用存储为函数的类型。委托的声明类似于函数,但不带函数体,且要使用delegate关键字,委托的声明指定了一个函数签名,其中包含一个返回类型和参数列表。在定义了委托后,就可以声明该委托类型的变量。接着把这个变量初始化为与委托有相同签名的函数引用。之后,就可以使用委托变量调用这个函数,就像该变量是一个函数一样。有了引用函数的变量以后,还可以执行不能用其他方式完成的操作。例如:可以把委托变量作为一个参数传递给一个函数,这样,该函数就可以使用委托调用它引用的任何参数,而且在运行之前无需知道调用的是哪个函数。

    代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication3
    {
        class Program
        {
            delegate void ProcessDelegate(string temp);//委托的声明
    
            static void Main(string[] args)
            {
                string  a = "My PC";
    
                ProcessDelegate process;//声明委托类型的变量
                process = new ProcessDelegate(SayOK);
                process(a);
                process = new ProcessDelegate(SayNo);//动态改变引用的函数。
                process(a);//无论委托引用的是什么函数调用方式都一样。
            }
            static void SayOK(string word)
            {
                Console.WriteLine(word+" is OK");
            }
            static void SayNo(string word) //引用参数
            {
                Console.WriteLine(word + " is No");
            }
        }
    }
    

    运行结果:

    tmp62

    注意:委托有很多用途,他们的大多数用途主要与事件处理有关。

  • 相关阅读:
    PMP:9.项目资源管理
    @JsonIgnore忽略JSON字段
    xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
    android加载不到.so文件
    报错Failed to install the following SDK components: platforms;android-29 Android SDK Platform 29
    Mac 终端启动运行Redis
    Mac 命令行执行Sublime
    Bean转为Json指定字段名,防止被修改大小写
    Rest接口入参忽略大小写 使用jackson注解
    mongo批量导入
  • 原文地址:https://www.cnblogs.com/ysz12300/p/5283314.html
Copyright © 2011-2022 走看看