变量的内存位置可以通过使用 C# 中称为引用参数的参数来引用,它们与称为值参数的参数不同,在值参数中,值作为参数传递,并为这些值创建一个新的内存位置,而在引用参数中,不会为这些参数分配内存位置,因为仅传递这些参数的引用,并且可以使用关键字 ref 来声明引用参数。
C# 中声明引用参数的语法如下:
return type Method name(ref arg1, ref arg2) Declare local variables, for example a, b Calling the method, Method name(ref a, ref b)
以上语法表示在 C# 中声明引用参数。 引用参数可以使用关键字 ref 来声明,并且可以使用关键字 ref 来访问它们。
考虑以下程序,其中包含两个方法加法和减法。 add 方法接受按值传递的参数,subtract 方法接受作为引用传递的参数。最初,声明两个变量并用两个值初始化。然后通过将值作为参数传递来调用 add 方法。即使该方法应该对作为参数传递的值执行操作,该值也不会发生变化,因为这是按值传递的。调用下一个减法方法,将引用参数传递到该方法。对作为引用传递的值执行减法方法中定义的操作并更新它。
代码:
using System; namespace refer { public class check { // Calling the main method public void Main(string[] args) { // The values of a and b are initialized int a = 15, b = 20; // The values of a and b are displayed before making changes to the values Console.WriteLine("value of a before changing is {0}", a); Console.WriteLine("value of b before changing is {0}", b); Console.WriteLine(); // The add method is called by passing the value add(a); // After calling the method by value, the changes value is displyed Console.WriteLine("After calling the add function"+ " value of a is {0}", a); // The sub method is called by passing the reference subtract(ref b); // Display modified value of b Console.WriteLine("Value of b after "+ "subtration operation is {0}", b); } // Defining the add method which accepts value as parameters public static void add(int a) { a += 5; } // Defining the subtract method which accepts reference as parameters public static void subtract(ref int b) { b -= 5; } } }
输出:
以下是 C# 中的以下引用类型
类是 C# 引用类型之一,可以使用关键字 class 来声明它们。 C# 中声明类的语法如下所示:
Class classname { }
该类支持继承。也就是说一个类可以继承基类的实现。类可以是公共的、私有的、受保护的。下面的程序演示了类的创建。
代码:
using System; namespace check { class children { private int height; private string names; // This is the consturctor class which is default public children() { names = "nobody"; } // Defining a constructor with arguments public children(string names, int height) { this.names = names; this.height = height; } // The method to print the values public void Print() { Console.WriteLine("{0} is {1} inches tall.", names, height); } } class Test { static void Main() { // New operator is used to create the objects on the class children child1 = new children("Shobha", 5); children child2 = new children("Ravi", 6); // An object is created using default constructor children child3 = new children(); // The results are displayed Console.Write("The first child: "); child1.Print(); Console.Write("The second child: "); child2.Print(); Console.Write("The third child: "); child3.Print(); } } }
输出:
合约是使用接口定义的。任何类的成员都有接口提供的明确实现。下面的程序演示了接口的创建和实现。
代码:
using System; //An interface is defined interface Point { int A { get; set; } int B { get; set; } double Dist { get; } } //A class is implementing the interface class Pointed : Point { // Constructor of the class public Pointed(int a, int b) { A = a; B = b; } public int A { get; set; } public int B { get; set; } public double Dist => Math.Sqrt(A * A + B * B); } class Maincl { static void PrintPointed(Point r) { Console.WriteLine("a={0}, b={1}", r.A, r.B); } static void Main() { Point r = new Pointed(2, 3); Console.Write("the points are: "); PrintPointed(r); } }
输出:
委托类型的声明就像方法的声明。它返回一个值,并且可以采用任意数量、任意类型的参数作为参数。它主要用于封装方法,充当函数指针。可以使用 delegate 关键字声明委托。声明委托的语法如下:
<access modifier> delegate <return type> <delegate_name>(<parameters>)
考虑下面的程序来演示委托的创建
代码:
using System; class Program { // Creating delegates public delegate void Printdel(int values); static void Main(string[] args) { // We are printing a number using delegates Printdel print = PrintNum; print(100); print(20); //We are printing money using printmon delegate print = PrintMon; print(10); print(20); } public static void PrintNum(int number) { Console.WriteLine("The Number is: {0,-12:N0}",number); } public static void PrintMon(int mon) { Console.WriteLine("The Money is: {0:C}", mon); } }
输出:
在本教程中,我们通过定义了解 C# 中引用的概念,然后通过示例程序了解 C# 中引用的语法和类型。
以上是C# 参考资料的详细内容。更多信息请关注PHP中文网其他相关文章!