• 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

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

  • 相关阅读:
    静态页面设置缓存、动态页面设缓存
    未能加载文件或程序集“WebGrease, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
    CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Files
    asp.net mvc 重定向
    win8 应用商店。 app下载的音乐和视频软件能打开,不能正常播放 解决方法
    JS 阻止事件冒泡
    ASP.NET MVC4空MVC项目添加脚本压缩和合并
    TabHost说明
    colors.xml
    MMU (一)
  • 原文地址:https://www.cnblogs.com/ysz12300/p/5283314.html
Copyright © 2020-2023  润新知