Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1

    Các kiểu dữ liệu trong lập trình C#

    Mình nghĩ khi chuyển từ C/C++ qua C# thì cái khác biệt lớn nhất đó chính là C# không có kiểu dữ liệu Con trỏ. Hay nói cách khác, trong C# người ta không quá quan tâm tới biến đó là con trỏ hay là biến giá trị. Lúc mới chuyển sang học C# mình cũng không biết làm sao vì không biết lúc nào là con trỏ, lúc nào là biến giá trị. Sau một thời gian ... tìm kiếm thì mình nhận ra được một số kinh nghiệm hông biết có đúng hông, nhưng mình thấy có vẻ hợp lí. Nay mình post lên đây nếu có sai thì bạn nào biết nói cho mình nha:

    CÁC TYPE TRONG C#
    Ở đây mình không nói lại định nghĩa các Type trong C# cụ thể như trong các sách lập trình mà nói về cách phân loại theo cách cấp phát bộ nhớ. Các Type rơi vào 1 trong hai hạng mục cơ bản: giá trị hay tham số
    • Các Type giá trị: lưu giữ trực tiếp dữ liệu của chúng và được cấp phát trên Stack.Các Type tham chiếu: lưu giữ một biến tham chiếu (tương tự con trỏ) đến dữ liệu của type, dữ liệu này được cấp phát trên Heap.


    PHÂN LOẠI CÁC KIỂU TYPE TRONG C#
    • Các Type giá trị (int, uint, long, ulong, short, ushort, byte, sbyte, float, double, decimal, bool, char ...)Type Struct: tương tự như class nhưng điểm khác biệt ở chỗ chúng là các kiểu giá trị được thiết kế để thực thi dữ liệu lean và mean. Struct không hổ trợ thừa kế (inherit), khởi tạo (constructor) hay hủy tạo (destructor). Struct là các kiểu giá trị, được cấp phát trên stack, được cấp phát và hủy phát một cách hiệu quả mà hông yêu cầu sự thu nhập dữ liệu vô nghĩa. Nếu Struct quá lớn, việc truyền nó dưới dạng một tham số giá trị có thể trở nên không có hiệu quả so với một class vốn truyền giá trị của tham chiếu (khi truyền tham số bằng tham trị thì chương trình phải tạo một bản sao của giá trị đó khi gọi hàm, còn nếu truyền bằng tham chiếu thì chỉ cần truyền kiểu "pointer" đến chỗ chứa dữ liệu của biến - đối tượng đó)Các Type tham chiếu: Bất kì class, giao diện hay delegate và các type được cài sẵn của đối tượng và chuỗi được coi là Type tham chiếu. Các biến có tham chiếu Type không chứa dữ liệu thật sự cho đối tượng, thay vào đó chúng chứa một tham chiếu dẫn đến dữ liệu (tương tự con trỏ vậy). Dữ liệu này được cấp phát trên Heap và được tự động thu thập dữ liệu vô nghĩa khi nó không còn được sử dụng (biến tham chiếu trong C# - tương tự như con trỏ trong C/C++ - không được phân biệt quá rõ ràng với các biết giá trị, do đó khi học C# có nhiều người không tìm hiểu kĩ nên rất dễ sai lầm ở chổ này. Biến tham chiếu được tự động bỏ khi dư thừa nên trong C# không có hàm delete như C/C++)
      Các chuỗi trong C# là các tham chiếu nhưng chúng hoạt động hợi khác biệt. Nếu chúng ta cùng thực hiện cùng một thao tác với chuỗi như chúng ta đã thực hiện với lớp trước đó, kết quả sẽ không giống nhau. Vì chuỗi là một Type cố định, giá trị của nó không thể thay đổi. Khi ta khởi tạo một biến String s1 = "..."; sau đó gán một dữ liệu mới khác, dữ liệu lúc đầu được giữ lại và tham chiếu sẽ chuyển sang vùng giá trị mới

    Vấn đề còn lại là làm sao để truyền đối số kiểu giá trị như là một tham chiếu. Phần này thì các bạn có thể tham khảo thêm phần ref và out đã được post rùi

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hơi ngắn gọn, chi tiết hơn chút thì hay
    dù sao cũng thank

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mọi người có thể tham khảo thêm về kiểu và biến tại đây .http://msdn.microsoft.com/en-us/libr...=VS.71%29.aspx

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •