volcanol的工控博客

一、 函数普通使用方法

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

namespace Function
{
    class staticFunction
    {
        public static void staticFunctionTest()
        {
            Console.WriteLine("这是某个类的static类型的函数,用来进行测试");
        }
    }
    class Program
    {
        public static void TestFunction()
        {
            Console.WriteLine("这是测试函数!!!");
        }

        public static void Main(string[] args)
        {
            //注意还可以定义包括Main()函数的类的变量,并且可以实例化
            //Program cMyProgram=new Program();

            //测试递归调用Main函数的效果  
            //cMyProgram.Main("1","2");  //不能

            //如果类成员函数定义为static,那么用类名引用
            //而且不需要实例化对象
             Program.TestFunction(); 

            //调用类的静态函数, 类的静态函数不需要实例化对象也可以引用。
             staticFunction.staticFunctionTest();

            Console.ReadKey();
        }
    }
}

二、值参数函数

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

namespace argument
{
    class Variable
    {
        public int iVar = 20; 
    }

    /// <summary>
    ///  演示值类型形式参数调用的过程
    /// </summary>
    class Funtion
    { 
        /// <summary>
        ///  定义一个函数,这个函数用来输出信息
        /// </summary>
        /// <param name="c1">这个参数接受一个Variable类的对象</param>
        /// <param name="b">这个参数接受一个int变量</param>
        public void print(Variable c1, int b)
        {
            //由于传递的是对象,所以对象的成员字段的值在此被修改,即便退出函数调用
            //对象的对应的成员字段的值也将保持修改后的值
            //主令,因为 Variable 类对象定义的成员字段为 iVar = 20,
            // 经过下面的操作后,变成 25, 当退出这个函数后, 实际参数对象的对应的值也将为25
            c1.iVar = c1.iVar + 5; 

            //而如果不是类对象,当退出函数后,实际参数的值将保持传入到函数里面原来的值
            b = b + 5;

            Console.WriteLine("这是在Function类里面");
            Console.WriteLine("v1.iVar = {0} , b = {1}",c1.iVar,b);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Funtion f1 = new Funtion();
            Variable v1 = new Variable();

            int b=5;

            f1.print(v1, b);

            Console.WriteLine("
这是在Main函数里面");
            //这个地方打印出来的值,演示了, 值类型参数为 对象、或者简单类型的差别
            Console.WriteLine("v1.iVar = {0} , b = {1}", v1.iVar, b);

            Console.ReadKey();

        }
    }
}

三、引用类型参数

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

namespace argument
{
    class Variable
    {
        public int iVar = 20;
    }

    /// <summary>
    ///  演示引用类型 形式参数调用的过程
    /// </summary>
    class Funtion
    {
        /// <summary>
        ///  定义一个函数,这个函数用来输出信息
        /// </summary>
        /// <param name="c1">这个参数接受一个Variable类的对象</param>
        /// <param name="b">这个参数接受一个int变量</param>
        public void print(ref Variable c1, ref int b)
        {
            //由于传递的是对象的引用,所以对象的成员字段的值在此被修改,即便退出函数调用
            //对象的对应的成员字段的值也将保持修改后的值
            //主令,因为 Variable 类对象定义的成员字段为 iVar = 20,
            // 经过下面的操作后,变成 25, 当退出这个函数后, 实际参数对象的对应的值也将为25
            c1.iVar = c1.iVar + 5;

            //因为形式参数b定位为引用类型,当函数调用是传递给函数的是实际参数的引用,
            //当退出函数后,实际参数的值将修改为执行下面语句操作后的值
            b = b + 5;

            Console.WriteLine("这是在Function类里面");
            Console.WriteLine("v1.iVar = {0} , b = {1}", c1.iVar, b);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Funtion f1 = new Funtion();
            Variable v1 = new Variable();

            int b = 5;

            //注意,不管是class类型的参数调用,还是简单类型的参数调用,如果定义为
            //ref类型,则调用的时候,必须加上关键字 ref
            f1.print(ref v1, ref b);

            Console.WriteLine("
这是在Main函数里面");
            //这个地方打印出来的值,注意 值类型参数 和 ref 引用类型参数的差别
            Console.WriteLine("v1.iVar = {0} , b = {1}", v1.iVar, b);

            Console.ReadKey();

        }
    }
}

--------------------------------------------------------------分割线---------------------------------------------------------------

1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

4、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线---------------------------------------------------------------

原文地址:https://www.cnblogs.com/volcanol/p/12416756.html