C#函数/方法详解

C# 中的函数(也可以称为方法)是一段具有签名(由函数名、参数类型和参数修饰符组成的函数信息)的代码块,可以用来实现特定的功能。一般情况下一个函数由以下几个部分组成:
  • 访问权限修饰符:用于指定函数对一个类的可见性;
  • 返回值类型:用于指定函数返回值的数据类型;
  • 函数名称:用于进行函数调用的唯一名称;
  • 参数列表:在调用函数时需要传递给函数的参数,参数列表是可选的,可以为空;
  • 函数主体:其中包含了实现函数功能的若干代码。

1、函数声明

C# 中声明函数的语法格式如下所示:

Access_Specifier Return_Type FunctionName(Parameter List)
{
   Function_Body
   Return_Statement
}

其中,Access_Specifier 为访问权限修饰符;Return_Type 为返回值类型;FunctionName 为函数名称;Parameter List 为参数列表;Function_Body 为函数主体;Return_Statement 为返回语句,用来返回数据。另外需要注意的是,访问权限修饰符、参数列表和返回语句是可选的,可以省略。

2、函数调用

想要调用我们定义好的函数,首先需要将函数所在的类实例化为对象,然后通过 对象.函数名()  的形式即可调用指定的函数,这里有几点需要注意:
  • 若函数在定义时参数列表中定义了若干参数,那么在调用时也应该在函数名后面的括号中填入相应数量的参数,并且与参数列表中的参数类型一一对应;
  • 若函数在定义时没有定义参数列表,那么在调用函数时也不需要在函数名后面填入参数;
  • 对于有返回值的函数,在调用函数时可以使用一个变量(可选)来接收函数的返回值,变量的类型要与函数返回值的类型相同。

提示:若调用同一个类中静态函数(使用 static 修饰的函数),则可以省略实例化对象的过程,直接使用 函数名() 的形式调用。

3、没有参数和返回值的函数

C# 中,如果函数不需要返回任何内容,则可以在定义函数时使用 void 来修饰返回值类型,示例代码如下:
using System;

namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            Demo Obj = new Demo();  //实例化当前类的对象
            Obj.Output();           //调用定义好的 Output 函数
        }
        /*
         * 定义一个没有返回值的函数
         */
        public void Output(){
            Console.WriteLine("http://c.biancheng.net/");
        }
    }
}
运行结果如下:

http://c.biancheng.net/

4、有参数但没有返回值的函数

如前面介绍的那样,函数可以接收一个或多个数据作为参数,并在函数内部使用或处理传入的参数,示例代码如下:
using System;

namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            string str = "http://c.biancheng.net/";
            Demo Obj = new Demo();      //实例化当前类的对象
            Obj.Output(str);            //调用定义好的 Output 函数,并将字符串 str 传递给函数
        }
        /*
         * 定义一个没有返回值的函数,该函数可以接收一个参数
         */
        public void Output(string message){
            Console.WriteLine(message);
        }
    }
}
运行结果如下:

http://c.biancheng.net/

5、有参数且有返回值的函数

一个函数可以具有零个或任意数量的参数,也可以返回指定的数据,在下面的示例中,将创建一个包含一个参数的函数,在函数中将传入的字符串拼接成一个新的字符串,并将新的字符串返回。
using System;

namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            Demo Obj = new Demo();  //实例化当前类的对象
            //调用定义好的 Output 函数,将字符串传递给函数,并使用 msg 接收函数的返回值
            string msg = Obj.Output("http://c.biancheng.net/");
            Console.WriteLine(msg);
        }
        /*
         * 定义一个函数,该函数可以接收一个字符串参数,
         * 并返回一个字符串
         */
        public string Output(string message){
            string str = "欢迎访问:" + message;
            return str;
        }
    }
}
运行结果如下:

欢迎访问:http://c.biancheng.net/

6、类中的静态函数

C# 中的静态函数指的是,在一个类中使用 static 修饰的函数,调用静态函数比调用普通函数要简单很多,只需要函数名即可:
using System;

namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            string msg = Output("http://c.biancheng.net/");   // 调用类中的静态函数
            Console.WriteLine(msg);
        }
        /*
         * 定义一个函数,该函数可以接收一个字符串参数,
         * 并返回一个字符串
         */
        static string Output(string message){
            string str = "欢迎访问:" + message;
            return str;
        }
    }
}
运行结果如下:

欢迎访问:http://c.biancheng.net/