一、 函数普通使用方法
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、或者在页面右下角点推荐哟!!!
--------------------------------------------------------------分割线---------------------------------------------------------------