C#通过引用通过C#是由Microsoft成型的面向对象的语言,用于开发通过.NET Framework运行的各种应用程序。betwayapp下载安装与每个面向对象的语言一样,C#包含对象,方法,变量,属性和事件。和类似于其他对象面向的语言,C#方法采用参数。有两种方式可以将参数传递到C#中的方法:通过值通过并通过引用传递。本文介绍了两者之间的基本差异。该文章包含基本示例,其演示如何通过引用和值传递参数以及它们的含义。

有兴趣在C#中学习OOP的更多信息?在Udemy.com乘坐这门课程

C#通过价值通过

按值向方法传递参数很简单。这就是为什么在解释通过引用传递参数之前要解释这一点的原因,因为引用传递参数更为复杂。c#的引用传递将在下一节中解释。

当一个简单变量作为参数传递给任何方法时,它将作为值传递。这意味着通过作为参数传递的变量所含的值被复制到方法的变量,如果在方法内部更改或修改,则更改不会反映在实际传递的变量中。

通过Vaints的传递变量是有用的,在该方法不应修改变量的实际值并且更改仅限于被叫方法,而调用方法中的变量的值保持不变。

以下示例演示了通过C#中的值传递变量的概念。

static void Square(int a, int b) {a = a * a;B = B * B;控制台。WriteLine (a + " " +);} static void Main(string[] args) {int num1 = 5;Int num2 = 10;控制台。WriteLine (num1 + " " + num2);广场(num1, num2);控制台。WriteLine(num1 + " " + num2); Console.ReadLine(); } }

在上面的例子中,类Program包含两个静态方法。一个是Main方法,它是应用程序的入口点,另一个方法是Square方法,它接受两个参数并显示这些值的平方。

在主要方法内,分别已声明和分配了两个整数型变量Num1和Num2分别为5和10的值。这些值已显示在控制台输出上。

接下来,将num1和num2作为参数传递给Square方法。square方法将num1和num2变量的值复制到参数体中的变量中,即分别为' a '和' b '。现在' a '和' b '变量只包含传递给该方法的num1和num2变量值的副本。除了变量' a '和' b '分别与num1和num2没有连接之外,如果变量' a '和' b '的值被更改,则对num1和num2没有影响。

在方形方法内,已平方化“A”和“B”值的平方,并且结果分别存储在“A”和“B”变量中。然后,这些值显示在控制台上。

现在,如果在主方法内,在调用方形方法后,如果显示NUM1和NUM2变量,则它们将包含其原始值5和10。

控制台上的输出看起来像这样:

5 10

25日10

5 10

新的C#?在Udemy.com看到这个初学者的课程

C#通过引用通过

通过引用将变量传递给方法有点棘手。c#的引用传递概念是,当参数通过引用传递给方法时,不是传递变量包含的值,而是将变量的引用传递给方法。该方法对参数中传递的变量的引用进行操作,而不是对它们的值进行操作。这导致当变量在被调用函数中被修改时,调用函数中的变量也会被修改。

通常,所有对象都作为参数引用传递给方法。另一方面,大多数原始数据类型,如整数、双精度、布尔值等,都是通过值传递的。

以下示例演示C#通过的概念通过引用。

class Person {public int age;} class Program {static void Square(Person a, Person b) {a.a age = a.a age * a.a age;b.年龄= b.年龄* b.年龄Console.WriteLine (a。年龄+ " " + b.age);} static void Main(string[] args) {Person p1 = new Person();Person p2 = new Person();p1。年龄= 5;p2。年龄= 10; Console.WriteLine(p1.age +" "+p2.age); Square(p1, p2); Console.WriteLine(p1.age + " " + p2.age); Console.ReadLine(); } }

在上面的代码中,已声明了一个名为Cliens的类,它只包含一个名为Age的Integer类型的一个公共成员。

在Program类的Main方法中,已经创建了Person类的两个对象,分别命名为p1和p2。将p1的成员变量age赋值为5,将p2的成员变量age赋值为10。这两个值随后显示在控制台上。

接下来,将两个人员对象p1和p2作为参数传递给Square方法。这是真正的魔法开始的地方。这里所发生的事情不是传递p1和p2对象成员的值,而是将这些对象的引用传递给Square方法。这些引用将被复制到Square方法的参数中的' a '和' b ' person类型对象。

在Square方法内部,a和b对象的年龄变量都将被访问并平方。生成的值将再次存储在两个对象的年龄变量中,并在控制台上显示。

现在,在将P1和P2对象传递到方形方法之后,如果在主要方法中显示这两个对象的年龄成员变量的值,则它们将包含更新值。这是由于在方形方法内部的原因,成员变量“年龄”已经使用传递给它的P1和P2对象的引用来更新。

输出看起来像这样:

5 10

25 100年

25 100年

结论

引用传递是c# . net的一个极其重要的特性。它允许在函数内部修改多个值,否则函数将只返回一个值。除此之外,一个复杂的应用程序可能包含多个类和方法,反复创建和销毁对象是不可取的。更好的方法是创建类的对象,并将其作为引用在应用程序的多个部分之间传递。

对于更重要的C#教程,请在Udemy.com查看此课程

C#中的顶级课程

用于初学者的#.NET
里克菲利普斯
4.4 (1,263)
完成C#Unity Game Developer 3D
Ben Tristem,Rick Davidson,Gamev.TV团队
4.7 (26808)
畅销书
C#中间:类,接口和OOP
Mosh Hamedani.
4.6 (23,125)
畅销书
RPG核心作战创造者:学习中级Unity C#编码
Ben Tristem, Rick Davidson, Sam Pattuzzi(游戏开发)电视团队
4.7 (8,487)
C#高级主题:准备技术访谈
Mosh Hamedani.
4.5 (15107)
完成C#MasterClass
丹尼斯•Panjuta教程。Denis Panjuta的eu
4.5 (12,001)
C#和.NET中的设计模式
Dmitri Nesteruk.
4.4 (7,102)
畅销书
使用C#和.NET学习并行编程
Dmitri Nesteruk.
4.5 (2035)
畅销书

更多C#课程

C#学生也会学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示