zoukankan      html  css  js  c++  java
  • 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、或者在页面右下角点推荐哟!!!

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

  • 相关阅读:
    SpringBoot启动流程分析(六):IoC容器依赖注入
    SpringBoot启动流程分析(五):SpringBoot自动装配原理实现
    SpringBoot启动流程分析(四):IoC容器的初始化过程
    Razor语法大全
    VS快捷方式小技巧
    DataTable 修改列名 删除列 调整列顺序
    更改DataTable列名方法
    log4net使用详解
    C#使用Log4Net记录日志
    经典SQL语句大全
  • 原文地址:https://www.cnblogs.com/volcanol/p/12416756.html
Copyright © 2011-2022 走看看