Truyền struct vào phương thức trong C#



Bài tập C#: Truyền struct vào phương thức

Điểm khác nhau giữa việc chúng ta truyền instance của struct và một instance của một class vào một phương thức trong C#. Bạn theo dõi chương trình C# dưới đây để theo dõi điểm khác nhau này nhé.

Chương trình C#

Dưới đây là chương trình C# minh họa lời giải cho bài tập truyền struct vào phương thức trong C#:

using System;namespace VietJackCsharp
{
    //tao mot class
    class newClass
    {
        public int n;
    }
    //tao mot struct
    struct newStruct
    {
        public int n;
    }
    class TestCsharp
    {
        public static void trackStruct(newStruct st)
        {
            st.n = 8;
        }
        public static void tracClass(newClass cl)
        {
            cl.n = 8;
        }
        public static void Main()
        {
            Console.Write("\nTruyen struct va instance cua class vao phuong thuc:\n");
            Console.Write("-----------------------------------------------------\n");
            newStruct ns = new newStruct();
            newClass nc = new newClass();
            ns.n = 5;
            nc.n = 5;
            //gia tri cua cac truong trong struct khong bi thay doi khi chung ta truyen instance   
            //cua struct nay, boi vi chi co ban sao cua struct se duoc truyen vao phuong thuc trackStruct       
            trackStruct(ns);
            //gia tri cua cac truong trong class bi thay doi khi chung ta truyen instance  
            //cua class nay, boi vi tham chieu toi class duoc truyen vao phuong thuc tracClass         
            tracClass(nc);
            Console.WriteLine("\nns.n = {0}", ns.n);
            Console.WriteLine("nc.n = {0}\n", nc.n);            Console.ReadKey();
        }
    }  
}

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Kết quả chương trình C#

Biên dịch và chạy chương trình C# trên sẽ cho kết quả:

Truyền struct vào phương thức trong C#
bai-tap-struct-trong-csharp.jsp