方法1

方法(又名函数):
一、  函数就是一堆代码进行重用的机制,函数是一段代码,这段代码可能有输入值(参数),可能会有返回值,一个函数就像一 个专门做这件事的人,我们调用他来做一些事,他可能需要我们提供一些数据,他执行完可能会返还给我们一些结果,我们提供的看数据叫做参数,它返还的结果叫做返回值,
1、函数的语法
[public] static 返回值类型 方法名([参数列表])
{
方法体;

public: 访问修饰符,
static:静态的
返回值类型,如果不需要返回值就写void
方法名:Pascal命名法每个单词的首字母都大写
参数列表,完成这个方法所必须要提供给这个方法的条件,无条件是可以不写参数
方法的调用:类名.方法名([参数])
***注意:(如果方法与Main()在同一个类中,且方法为static静态方法,调用时可以不加类名)
return的作用:1、返回一个值,2、结束方法的执行
2、方法的功能要单一,方法最忌讳的是提示用户输入;因为这样只能在控制台方法的功能要单一,方法最忌讳的是提示用户输入;因为这样只能在控制台
3、我们在Mian()函数中调用Test()方法,我们称Main()函数为调用者,称Test()函数为被调用者,
4、传参返回值; 使用静态字段来模拟全局变量(每个方法都能访问到此类中的静态段)

5、错误处理;并非所有的代码路径都有返回值:(我们在方法声明的时候有返回值类型,但是在方法体中没有写return)


1、方法的调用:如果方法与Main()在同一个类中,且方法为static静态方法,调用时可以不加类名,但是如果方法没有被定义成Static静态方法,此时需要需要实例话类的对象,对象名.方法名([参数])来调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法的调用
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 3;
            Program.Test(a);//此处的类名可以省略
            Console.ReadKey();
        }

        private static void Test(int n)
        {
            
            Console.WriteLine(n);
        }
    }
}

运行结果:




非静态方法要求对象的引用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法的调用
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 3;
            Program pro = new Program();
            pro.Test(a);//类的实例对象不能省略因为方法不是静态方法
            Console.ReadKey();
        }

        private  void Test(int n)
        {
            
            Console.WriteLine("我不是静态方法: "+ n);
        }
    }
}

运行结果:




2、方法的练习:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法练习
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 3;

            Console.WriteLine(Test(a));
            Console.ReadKey();
        }
        public static int Test(int a)
        {
           return a= a + 3;
 
        }
    
    }
}

运行结果:




求两个数的最大值:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法1
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Program.GetMax(1,6);
            Console.WriteLine("1和6中最大的那个是: "+n);
            Console.ReadKey();

        }
        /// <summary>
        /// 求两个整数的最大值并将最大值返回
        /// </summary>
        /// <param name="n1">第一个整数</param>
        /// <param name="n2">第二个整数</param>
        /// <returns></returns>
        public static int GetMax(int n1, int n2)
        {
            return n1 > n2 ? n1 : n2;//return 1、结束这个方法2、返回一个值
            //int max = n1 > n2 ? n1 : n2;
            //return max;
        }
    }
}

运行结果:





交换两个变量的值:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法的高级参数ref的前奏
{
    class Program
    {
        static void Main(string[] args)
        {
            //交换两个int 类型的的变量
            int n1 = 10;
            int n2 = 40;

            //方法1
            //int Temp = n1;
            //n1 = n2;
            //n2 = Temp;

            //方法2面试题不用中间变量就可以交换两个值;
            //n1 = n1 - n2;
            //n2 = n1 + n2;
            //n1 = n2 - n1;
            Test(ref n1, ref n2);
            Console.WriteLine("交换后: n1 = {0}, n2 = {1}",n1 , n2);
            Console.ReadKey();
            
        }
        public static void Test(ref int n1, ref int n2)
        {
            int temp = n1;
            n1 = n2;
            n2 = temp;
        }
    }
}

运行结果:




数组求和练习:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法的两个练习2数组求和
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            int sum = GetSum(arr);
            Console.WriteLine("数组的和为:"+ sum);
            Console.ReadKey();
        }

        private static int GetSum(int[] arr)
        {
            int sums=0;//定义一个变量一定要给他初始化
            for (int i = 0; i < arr.Length; i++)
            {
                sums += arr[i];
                
            }
            return sums;
        }
    }
}

运行结果:




方法练习判断闰年:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法的调用4练习
{
    class Program
    {
        static void Main(string[] args)
        {
            //判断是否是闰年
            bool b = IsRun(2000);
            Console.WriteLine("2000年是闰年吗?"+b);
            Console.ReadKey();

        }
        /// <summary>
        /// 判断一个年份是否是闰年
        /// </summary>
        /// <param name="year">要判断的年份</param>
        /// <returns>返回 的结果</returns>
        public static bool IsRun(int year)
        {
            bool b = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
            return b;//在我们没写return之前报一个错
        }
    }
}

运行结果:




3、方法的功能要单一,方法最忌讳的是提示用户输入;因为这样只能在控制台调用

 问题:1、读取一个整数,定义成方法。2、多次调用如果是数字则返回否则提示用户重新输入

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
 * 此方法有误,方法的功能必须是单一的方法最忌讳的是提示用户输入 
 */
namespace 方法的练习5
{
    class Program
    {
        static void Main(string[] args)
        {
            //读取一个整数,定义成方法
            //多次调用如果是数字则返回否则提示用户重新输入
            NewMethod();
            Console.ReadKey();
        }

        private static void NewMethod()
        {
            while (true)
            {
                try
                {
                    Console.WriteLine("请输入一个数");
                    int number = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("您输入的整数是:"+ number);
                    break; 
                }
                catch
                {
                    Console.WriteLine("输入有误情重新输入");

                }
            }
        }
    }
}

运行结果:




 问题:1、读取一个整数,定义成方法。2、多次调用如果是数字则返回否则提示用户重新输入

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法练习501
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("您输入的整数是:"+ getInpout());
            Console.ReadKey();
        }

        private static int  getInpout()
        {
            int input;
            string strInput;
            while (true)
            {
                Console.WriteLine("请输入整数");
                strInput = Console.ReadLine();
                if (int.TryParse(strInput, out input))
                {
                    return input;
                }
                else
                {
                    Console.WriteLine("您输入的有误请重新输入");
                }

            }
        }
    }
}

运行结果:


4、解决在方法中用循环接收用户输入,把接受用户的输入写在方法外面,然后把用户的输入当成参数传递给方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法的练习502
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数字");
            string input = Console.ReadLine();
           int output = GetInput(input);
           Console.WriteLine("你输入的数字是"+ output);
           Console.ReadKey();
        }

        private static int GetInput(string str)
        {
            while (true)
            {
                try
                {
                    int output = Convert.ToInt32(str);
                    return output;

                }
                catch
                {

                    Console.WriteLine("输入有无请重新输入");
                    str = Console.ReadLine();//必须有这一句要不然就死循环了
                }
            }
        }
    }
}

运行结果:


5、练习之提示用户台只能输入yes或no时进行下一步

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace 方法的两个练习1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入yes或者no");
            string str = Console.ReadLine();
            string result = IsYesOrNo(str);
            Console.WriteLine("您输入的是:"+ result);
            Console.ReadKey();
        }

        private static string IsYesOrNo(string input)
        {
            while (true)
            {
                if(input =="yes"||input =="no")
                {
                    return input;
                }
                else
                {
                    Console.WriteLine("你输入的不对:");
                    Console.WriteLine("请输入yes或者no");
                    input = Console.ReadLine();//挺必要的要没有就陷入死循环
                }
            }
            
        }
    }
}

运行结果:


猜你喜欢

转载自blog.csdn.net/boy_of_god/article/details/80655637
今日推荐