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

Access modifiers in C# are keywords that set the visibility of a class, property, or method, restricting which external programs can reach them. Constructors initialize field values automatically whenever an object of the class is created.

  • 🔐 Riêng: The private access modifier limits a member to the same class, blocking access from any external program.
  • 🌐 Công cộng: The public access modifier exposes a property or method to any external program without restriction.
  • 🛡️ Được bảo vệ: The protected access modifier shares members only with classes inherited from the current class.
  • 📦 nội bộ: The internal access modifier permits access within the same assembly but not from an external program.
  • 🏗️ Người xây dựng: A constructor shares the class name, takes no return type, and initializes fields when an object is created.
  • 🤖 Hỗ trợ AI: GitHub Copilot scaffolds modifiers and constructors, while ML.NET maps class properties to model features.

Access Modifiers (Specifiers) in 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 or Access Specifiers in C# are the keywords used to define the visibility of a class property or method. It is used when you do not want other programs to see the properties or methods of a class. Access modifiers restrict access so that other programs cannot see the properties or methods of a class.

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

If no modifier is specified, class and struct members default to private and top-level types to internal, staying hidden until you widen their visibility.

Protected exposes a member to the same class and any derived class, even across assemblies. Internal exposes it only to types in the same assembly.

Protected internal allows access from the same assembly or any derived class. Private protected is stricter, allowing only derived classes inside the same assembly.

C# supports default, parameterized, copy, static, and private constructors. They initialize an object’s fields, run class setup once, or clone another object’s values.

A static constructor takes no modifier or parameters. It runs once, before the first object is created or static members load, initializing static fields.

Yes. A class can define several constructors with different parameter lists. The compiler picks the one matching the arguments passed to new.

Yes. GitHub Copilot suggests modifiers, constructors, and field initializers from a class name or comment inside Visual Studio and VS Code. Review each suggested visibility level.

ML.NET maps the public properties of a C# data class to model features and labels. Public getters and setters let it read those values during training.

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