工控隨筆_C#連接PLC_之_C#入門_07_函數


一、 函數普通使用方法

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("\n這是在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("\n這是在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、或者在頁面右下角點推薦喲!!!

--------------------------------------------------------------分割線---------------------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM