Công cụ sửa đổi truy cập (Công cụ xác định) trong C# với các ví dụ về chương trình

⚡ Tóm tắt thông minh

Trong C#, các từ khóa bổ trợ truy cập (access modifiers) dùng để thiết lập phạm vi hiển thị của một lớp, thuộc tính hoặc phương thức, hạn chế các chương trình bên ngoài có thể truy cập chúng. Hàm tạo (constructor) tự động khởi tạo giá trị trường mỗi khi một đối tượng của lớp được tạo ra.

  • 🔐 Riêng: Bộ điều chỉnh quyền truy cập riêng tư giới hạn một thành viên chỉ được truy cập trong cùng một lớp, ngăn chặn quyền truy cập từ bất kỳ chương trình bên ngoài nào.
  • 🌐 Công cộng: Bộ điều chỉnh quyền truy cập công khai cho phép bất kỳ chương trình bên ngoài nào truy cập vào một thuộc tính hoặc phương thức mà không bị hạn chế.
  • 🛡️ Được bảo vệ: Bộ điều chỉnh quyền truy cập được bảo vệ chỉ chia sẻ các thành viên với các lớp kế thừa từ lớp hiện tại.
  • 📦 nội bộ: Bộ điều chỉnh truy cập nội bộ cho phép truy cập trong cùng một assembly nhưng không cho phép truy cập từ một chương trình bên ngoài.
  • 🏗️ Người xây dựng: Hàm tạo có cùng tên lớp, không có kiểu trả về và khởi tạo các trường khi đối tượng được tạo.
  • 🤖 Hỗ trợ AI: GitHub Copilot tạo cấu trúc cho các bổ ngữ và hàm tạo, trong khi ML.NET ánh xạ các thuộc tính của lớp với các tính năng của mô hình.

Các công cụ sửa đổi (bộ chỉ định) truy cập trong C#

Công cụ sửa đổi truy cập (Công cụ xác định) trong C# là gì?

Truy cập công cụ sửa đổi Từ khóa `access specifiers` trong C# được sử dụng để xác định phạm vi hiển thị của thuộc tính hoặc phương thức của một lớp. Chúng được sử dụng khi bạn không muốn các chương trình khác nhìn thấy các thuộc tính hoặc phương thức của lớp đó. Từ khóa `access modifiers` hạn chế quyền truy cập để các chương trình khác không thể nhìn thấy các thuộc tính hoặc phương thức của lớp.

Có 6 loại công cụ sửa đổi truy cập trong C#:

  • Riêng
  • Public
  • bảo vệ
  • nội
  • Nội bộ được bảo vệ
  • Bảo vệ riêng tư

Chúng ta sẽ tìm hiểu về các bộ sửa đổi truy cập chính trong C# bằng các ví dụ về chương trình như được giải thích bên dưới.

Công cụ sửa đổi quyền truy cập riêng tư trong C#

Khi công cụ sửa đổi quyền truy cập Riêng tư được gắn vào một thuộc tính hoặc một phương thức, điều đó có nghĩa là các thành viên đó không thể được truy cập từ bất kỳ chương trình bên ngoài nào.

Ví dụ về Công cụ sửa đổi quyền truy cập riêng tư

Hãy lấy một ví dụ và xem điều gì sẽ xảy ra khi chúng ta sử dụng công cụ sửa đổi quyền truy cập riêng tư.

Hãy sửa đổi mã hiện tại trong tệp Tutorial.cs của chúng tôi. Trong phương thức SetTutorial, hãy thay đổi từ khóa công khai thành riêng tư.

Công cụ sửa đổi quyền truy cập riêng tư

Bây giờ hãy chuyển sang tệp Program.cs của chúng tôi. Bạn sẽ nhận thấy có một đường nguệch ngoạc màu đỏ trong phương thức SetTutorial.

Vì chúng ta đã khai báo phương thức SetTutorial là riêng tư trong lớp Tutorial của mình, Visual Studio đã phát hiện ra điều này. Nó đã thông báo cho người dùng bằng cách làm nổi bật phương thức này rằng bây giờ phương thức này sẽ không hoạt động từ tệp Program.cs.

Công cụ sửa đổi quyền truy cập riêng tư

Công cụ sửa đổi truy cập công cộng C#

Khi Công cụ sửa đổi truy cập công khai được gắn vào một thuộc tính hoặc một phương thức, điều đó có nghĩa là các thành viên đó có thể được truy cập từ bất kỳ chương trình bên ngoài nào. Chúng tôi đã thấy điều này trong các ví dụ trước đây của chúng tôi.

Ví dụ về Công cụ sửa đổi quyền truy cập công cộng

Công cụ sửa đổi truy cập công cộng C#

Vì chúng ta đã định nghĩa các phương thức của mình là công khai trong lớp Hướng dẫn nên chúng có thể được truy cập từ tệp Program.cs.

Công cụ sửa đổi quyền truy cập được bảo vệ trong C#

Khi công cụ sửa đổi quyền truy cập được bảo vệ được gắn vào một thuộc tính hoặc một phương thức, điều đó có nghĩa là các thành viên đó chỉ có thể được truy cập bởi lớp kế thừa từ hiện tại tốt nghiệp lớp XNUMX. Điều này sẽ được giải thích chi tiết hơn trong lớp Kế thừa.

Công cụ sửa đổi truy cập nội bộ C#

Khi một công cụ sửa đổi truy cập nội bộ được gắn vào một thuộc tính hoặc một phương thức, những thành viên đó chỉ có thể được truy cập bởi một chương trình nội bộ chứ không phải bởi một chương trình bên ngoài.

Trình xây dựng C#

C# Các hàm tạo được sử dụng để khởi tạo các giá trị của các trường lớp khi các đối tượng tương ứng của chúng được tạo. Hàm tạo là một phương thức có cùng tên với tên của lớp. Nếu một hàm tạo được định nghĩa trong một lớp thì nó sẽ cung cấp phương thức đầu tiên được gọi khi một đối tượng được tạo. Giả sử nếu chúng ta có một lớp tên là Nhân viên. Phương thức khởi tạo cũng sẽ được đặt tên là Nhân viên().

Những điều quan trọng sau đây cần được lưu ý về phương thức xây dựng

  1. Công cụ sửa đổi truy cập mặc định C# cho hàm tạo cần được đặt ở chế độ công khai.
  2. Không nên có kiểu trả về cho phương thức khởi tạo.

Ví dụ về hàm tạo C#

Bây giờ hãy xem cách chúng ta có thể kết hợp người dùng của hàm tạo trong mã của mình. Chúng ta sẽ sử dụng hàm tạo để khởi tạo các trường TutorialID và TutorialName thành một số giá trị mặc định khi đối tượng được tạo.

Bước 1) Bước đầu tiên là tạo hàm tạo cho lớp Hướng dẫn của chúng ta. Trong bước này, chúng tôi thêm mã bên dưới vào tệp Tutorial.cs.

Trình xây dựng C#

Code Giải trình:-

  1. Đầu tiên chúng ta thêm một phương thức mới có cùng tên với tên của lớp. Vì nó có cùng tên với lớp nên C# coi đây là một phương thức xây dựng. Vì vậy, bây giờ bất cứ khi nào phương thức gọi tạo một đối tượng của lớp này, phương thức này sẽ được gọi theo mặc định.
  2. Trong hàm tạo Hướng dẫn, chúng tôi đang đặt giá trị của TutorialID thành 0 và TutorialName thành “Mặc định”. Vì vậy, bất cứ khi nào một đối tượng được tạo, các trường này sẽ luôn có các giá trị mặc định này.

Bây giờ, hãy chuyển sang tệp Program.cs của chúng ta và chỉ xóa dòng gọi phương thức SetTutorial. Điều này là do chúng ta chỉ muốn xem hàm tạo hoạt động như thế nào.

Trình xây dựng C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public Tutorial()
  {
   TutorialID=0;
   TutorialName="Default";
  }
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Code Giải trình:-

  1. Bước đầu tiên là tạo một đối tượng cho lớp Tutorial. Điều này được thực hiện thông qua từ khóa 'mới'.
  2. Chúng ta sử dụng phương thức GetTutorial của lớp Tutorial để lấy TutorialName. Sau đó, điều này được hiển thị trên bảng điều khiển thông qua phương thức Console.WriteLine.

Nếu mã trên được nhập đúng và chương trình được thực thi, kết quả đầu ra sau sẽ được hiển thị.

Đầu ra:

Trình xây dựng C#

Từ kết quả đầu ra, chúng ta có thể thấy rằng hàm tạo thực sự đã được gọi và giá trị của TutorialName được đặt thành “Mặc định”.

Lưu ý: Ở đây giá trị “mặc định” được lấy từ hàm tạo.

Câu Hỏi Thường Gặp

Nếu không có từ khóa bổ trợ nào được chỉ định, các thành viên của lớp và cấu trúc sẽ mặc định là private, còn các kiểu dữ liệu cấp cao nhất sẽ là internal, và chúng sẽ ẩn đi cho đến khi bạn mở rộng phạm vi hiển thị của chúng.

Từ khóa `protected` cho phép truy cập vào một thành viên từ cùng lớp và bất kỳ lớp dẫn xuất nào, kể cả giữa các assembly khác nhau. Từ khóa `internal` chỉ cho phép truy cập vào thành viên đó từ các kiểu dữ liệu trong cùng một assembly.

Từ khóa `protected internal` cho phép truy cập từ cùng một assembly hoặc bất kỳ lớp dẫn xuất nào. Từ khóa `private protected` nghiêm ngặt hơn, chỉ cho phép các lớp dẫn xuất bên trong cùng một assembly truy cập.

C# hỗ trợ các kiểu khởi tạo mặc định, có tham số, sao chép, tĩnh và riêng tư. Chúng khởi tạo các trường của đối tượng, chạy thiết lập lớp một lần hoặc sao chép các giá trị của một đối tượng khác.

Hàm tạo tĩnh không có bổ ngữ hay tham số nào. Nó chỉ chạy một lần, trước khi đối tượng đầu tiên được tạo hoặc các thành viên tĩnh được tải, khởi tạo các trường tĩnh.

Đúng vậy. Một lớp có thể định nghĩa nhiều hàm tạo với danh sách tham số khác nhau. Trình biên dịch sẽ chọn hàm tạo phù hợp với các đối số được truyền cho từ khóa `new`.

Đúng vậy. GitHub Copilot đề xuất các bổ ngữ, hàm tạo và trình khởi tạo trường từ tên lớp hoặc chú thích trong Visual Studio. VS Code. RevXem xét từng mức độ hiển thị được đề xuất.

ML.NET ánh xạ các thuộc tính công khai của một lớp dữ liệu C# tới các đặc trưng và nhãn của mô hình. Các phương thức getter và setter công khai cho phép nó đọc các giá trị đó trong quá trình huấn luyện.

Tóm tắt bài viết này với: