初识C#(四)- 函数或方法

发布于:2024-10-10 ⋅ 阅读:(128) ⋅ 点赞:(0)

函数就是一个外挂的方法,以便我们自己自定义某个功能


前言

本篇笔记重点描述C#中如何使用函数。


一、函数的使用

1.1 函数的定义和使用

函数的定义就像我们建房子,画好了一个蓝图,使用就等于对着这个蓝图去建地基

internal class Program
{
    static int Add(int a,int b)
    {
        int c = a + b;
        return c;//和break功能有点相似,因为方法返回之后,表示这个方法中止了
        Console.WriteLine("123");//这个代码相当于是没有用的
    }
    //主函数 入口函数  --- 主方法 入口方法
    private static void Main(string[] args)
    {
        int a = Add(10, 10);
        Console.WriteLine(a);
    }
}

1.2 函数参数分为(形参和实参)

形参是指形式参数,是一个变量,一般跟在创建函数()里面。实参是指在主函数(方法)里面的传递过去的实际参数。

internal class Program
{
    //方法的定义   //bool(返回值)             //形参  形式参数(也是一个变量)
    static bool VerifyUsername(string username)//void,空(不需要返回值的意思)
    {
        Console.WriteLine("校验逻辑修改");
        Console.WriteLine("校验逻辑修改2");
        Console.WriteLine("校验用户名");

        return true;//返回值,返回的值的类型要和返回值的类型保持一致
    }
    //主函数 入口函数  --- 主方法 入口方法
    private static void Main(string[] args)
    {
        //100-50
        //方法的调用
        //某个字符串    实参 实际参数
        bool result = VerifyUsername("siki");//得到返回值,这个返回值可以得到也可以不得到
        Console.WriteLine(result);

        VerifyUsername("aabb");

        VerifyUsername("my");
    }
}

1.3 函数的返回值

这里我们用回1.1的代码解释,返回值就是return,即返回数值到上级。而且return和break功能有点相似,在方法返回后,就表示这个方法中止了。

internal class Program
{
    static int Add(int a,int b)
    {
        int c = a + b;
        return c;//和break功能有点相似,因为方法返回之后,表示这个方法中止了
        Console.WriteLine("123");//这个代码相当于是没有用的
    }
    //主函数 入口函数  --- 主方法 入口方法
    private static void Main(string[] args)
    {
        int a = Add(10, 10);
        Console.WriteLine(a);
    }
}

二、函数的递归

2.1 调用自身的函数就是递归函数

递归函数和循环有点类似,但是逻辑上却有一些不同。但是递归函数在代码书写上和观赏性来说比循环要舒服一些。

internal class Program
{
    static void Test()
    {
        Console.WriteLine("test1");
        Test();
    }//死递归,因为没有return返回终止
    static int F(int n)
    {
        if (n == 0)
        {
            return 2;
        }
        if (n == 1)
        {
            return 3;
        }
        int res = F(n - 1) + F(n - 2);
        return res;
    }
    private static void Main(string[] args)
    {
        fn = fn1 +fn2 f0=2 f1=3
        //int n1 = 3;//f1 
        //int n2 = 2;//f0
        //int n = 0;
        //for (int i = 2; i < 41; i++)//2遍历到40
        //{
        //    n = n1 + n2;
        //    n2 = n1;
        //    n1 = n;
        //}
        Console.WriteLine(F(40));
    }
}

三、枚举类型

3.1 枚举类型的声明与赋值

internal class Program
{
    enum RoleType//枚举类型的名字 RoleType 角色类型 
    {
        mage,Archer,Assassin,Tank,Support,Warrior //枚举类型的值
    }
    private static void Main(string[] args)
    {
        //函数 - 定义 使用
        //1法师(mage),2射手(Archer),3刺客(Assassin),4坦克(Tank),5辅助(Support),6战士(Warrior)
        //int roleType = 4;

        //roleType = 3;

        //int long string是系统提供好的类型,这个RoleType是我们自己新创建的枚举类型
        //RoleType roleType = RoleType.Assassin;

        //if(roleType == RoleType.Assassin)
        //{

        //}

        GameState gameState = GameState.Menu;
        gameState = GameState.Running;
        if(gameState == GameState.Menu) { 
            
        }
        Console.WriteLine(gameState);

        WeekDay day = WeekDay.Wed;
        day = WeekDay.tue;
    }
    //菜单、游戏中、暂停、失败、成功
    enum GameState//枚举的变量名名字一般首字母大写
    {
        Menu,Running,Pause,Fail,Success
    }
    enum WeekDay//枚举类型本质上是int类型,只是为了更方便阅读
    {
        Sun=10, Mon, tue, Wed, thu, Fri, Sat//把第一个值改成10,后面的值会递增1
        //每一个值都可以修改
    }
}

总结

函数和方法就是自己自定义一个方法方便在Main函数里实现某个功能。枚举类型就是自己创建一个类型并把我们想要放入的变量放在里面,方便后续使用。


网站公告

今日签到

点亮在社区的每一天
去签到