《C#图解教程》第5版笔记-方法调用&返回语句&局部函数

方法调用

代码示例:下面的类声明了一个名为PrintDataTime的方法,该方法将在Main方法内调用。

using System;

namespace ConsoleApp2
{
    class MyClass
    {
        void PrintDataTime()                      //声明方法
        {
            DateTime dt = DateTime.Now;           //调用当前日期和时间
            Console.WriteLine($"{dt}");
        }
        static void Main()                       //声明方法
        {
            MyClass mc = new MyClass();          //调用方法
            mc.PrintDataTime();

        }
    }
}

返回值

方法可以向调用代码返回一个值。返回的值被插入到调用代码中发起调用的表达式所在的位置。

  • 要返回值,方法必须在方法名前面声明一个返回类型。声明了返回类型的方法必须使用return语句从方法中返回一个值。
  • 如果方法不返回值,它必须声明void返回类型。

代码示例:下面的代码中,方法GetHour在Main的WriteLine语句中被调用,并在该位置返回一个int值到WriteLine语句中。

using System;

namespace ConsoleApp2
{
    class MyClass
    {
        public int GetHour()
        {
            DateTime dt = DateTime.Now;
            int hour = dt.Hour;
            return hour;
        }

        static void Main()                                   //声明方法
        {
            MyClass mc = new MyClass();                      
            Console.WriteLine("Hour:{0}", mc.GetHour());     //调用方法

        }
    }
}

返回语句和void方法

void方法不需要返回语句,但是当特定条件符合时,我们常常会提前退出方法以简化程序逻辑。

  • 可以在任何时候使用不带参数的返回语句return退出方法。
  • 这种形式的返回语句只能用于void声明的方法。

代码示例:该方法是只有当时间是下午的时候才弹出一条消息。

using System;

namespace ConsoleApp2
{
    class MyClass
    {
        void GetHour()
        {
            DateTime dt = DateTime.Now;
            int hour = dt.Hour;
            if (hour < 12)
                return;
            Console.WriteLine("It's afternoon!");
        }

        static void Main()                                   //声明方法
        {
            MyClass mc = new MyClass();                      
            mc.GetHour();     //调用方法

        }
    }
}

局部函数

方法块内的代码可以调用另一个方法。如果另一个方法在同一个类内,可以直接使用它的名称并传入所需的参数进行调用。如果另一个方法在不同的类中,必须通过这个类的一个对象实例调用它。

从C#7.0开始,可以在一个方法中声明另一个单独的方法。与局部变量必须在使用之前进行声明不同,你可以在包含方法的任意位置声明局部函数。

代码示例:演示了调用MethodWithLocalFunction方法,它包含一个局部函数MyLocalFunction

using System;

namespace ConsoleApp2
{
    class MyClass
    {
        public void MethodWithLocalFunction()
        {
            int MyLocalFunction(int z1)
            {
                return z1 * 5;
            }

            int results = MyLocalFunction(5);
            Console.WriteLine($"Results of local function call:{results}");
        }
        
        static void Main()
        {
            MyClass mc = new MyClass();
            mc.MethodWithLocalFunction();
        }
    }
}

未经允许不得转载:透视数据 » 《C#图解教程》第5版笔记-方法调用&返回语句&局部函数