Rumah > Artikel > pembangunan bahagian belakang > Rujukan C#
Lokasi memori pembolehubah boleh dirujuk dengan menggunakan parameter yang dipanggil parameter rujukan dalam C# dan ia berbeza daripada parameter yang dipanggil parameter nilai di mana nilai dihantar sebagai parameter dan lokasi memori baharu dicipta untuk nilai ini sedangkan, dalam parameter rujukan, tiada lokasi memori diperuntukkan untuk parameter ini kerana hanya rujukan parameter ini diluluskan dan parameter rujukan boleh diisytiharkan dengan menggunakan rujukan kata kunci.
Sintaks untuk mengisytiharkan parameter rujukan dalam C# adalah seperti berikut:
return type Method name(ref arg1, ref arg2) Declare local variables, for example a, b Calling the method, Method name(ref a, ref b)
Sintaks di atas mewakili mengisytiharkan parameter rujukan dalam C#. Parameter rujukan boleh diisytiharkan dengan menggunakan rujukan kata kunci dan ia boleh diakses dengan menggunakan rujukan kata kunci.
Pertimbangkan atur cara berikut yang terdiri daripada dua kaedah tambah dan tolak. Kaedah tambah menerima parameter yang diluluskan mengikut nilai dan kaedah tolak menerima parameter yang diluluskan sebagai rujukan. Pada mulanya, dua pembolehubah diisytiharkan dan dimulakan dengan dua nilai. Kemudian tambah kaedah dipanggil dengan menghantar nilai sebagai parameter. Tiada perubahan dalam nilai walaupun kaedah itu sepatutnya melakukan operasi pada nilai yang diluluskan sebagai parameter kerana ini melepasi nilai. Kaedah tolak seterusnya dipanggil yang mana parameter rujukan diluluskan. Operasi yang ditakrifkan dalam kaedah tolak dilakukan pada nilai yang diluluskan sebagai rujukan dan ia dikemas kini.
Kod:
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; } } }
Output:
Berikut ialah Jenis Rujukan berikut dalam C#
Kelas ialah salah satu jenis rujukan C# dan ia boleh diisytiharkan menggunakan kelas kata kunci. Sintaks untuk mengisytiharkan kelas dalam C# ditunjukkan di bawah:
Class classname { }
Kelas menyokong warisan. Itulah kelas boleh mewarisi pelaksanaan kelas asas. Kelas boleh sama ada awam, persendirian, dilindungi. Program berikut menunjukkan penciptaan kelas.
Kod:
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(); } } }
Output:
Kontrak ditakrifkan menggunakan antara muka. Ahli mana-mana kelas mempunyai pelaksanaan pasti yang disediakan oleh antara muka. Program berikut menunjukkan penciptaan dan pelaksanaan antara muka.
Kod:
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); } }
Output:
Pengisytiharan jenis perwakilan adalah seperti pengisytiharan kaedah. Ia mengembalikan nilai dan ia boleh mengambil sebarang bilangan argumen dari sebarang jenis sebagai parameter. Ia pada asasnya digunakan dalam enkapsulasi kaedah yang bertindak sebagai penunjuk kepada fungsi. Seorang perwakilan boleh diisytiharkan menggunakan kata kunci perwakilan. Sintaks untuk mengisytiharkan perwakilan adalah seperti berikut:
<access modifier> delegate <return type> <delegate_name>(<parameters>)
Pertimbangkan program di bawah yang menunjukkan penciptaan perwakilan
Kod:
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); } }
Output:
Dalam tutorial ini, kami memahami konsep Rujukan dalam C# melalui definisi dan kemudian memahami sintaks dan jenis rujukan dalam C# melalui program contoh.
Atas ialah kandungan terperinci Rujukan C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!