Computer >> Máy Tính >  >> Lập trình >> C#

Tại sao chúng ta không thể chỉ định các công cụ sửa đổi quyền truy cập bên trong giao diện trong C #?


Các phương thức giao diện là hợp đồng với thế giới bên ngoài chỉ định rằng lớp triển khai giao diện này thực hiện một số việc nhất định.

Các thành viên giao diện luôn ở chế độ công khai vì mục đích của giao diện là cho phép các loại khác truy cập vào một lớp hoặc cấu trúc.

Các giao diện có thể có các chỉ định truy cập như được bảo vệ hoặc bên trong, v.v. Do đó, giới hạn 'thế giới bên ngoài' trong một tập hợp con của 'toàn bộ thế giới bên ngoài'.

Ví dụ

interface IInterface{
   void Save();
}
class Program{
   static void Main(){
      Console.ReadLine();
   }
}

Ví dụ trên sẽ biên dịch đúng cách mà không có bất kỳ lỗi nào

Trước C # 8, các thành viên giao diện được công khai theo mặc định. Trên thực tế, nếu bạn đặt một công cụ sửa đổi quyền truy cập trên một thành viên giao diện (bao gồm cả công khai), nó sẽ tạo ra lỗi trình biên dịch.

interface IInterface{
   Public void Save();
}
class Program{
   static void Main(){
      Console.ReadLine();
   }
}

Đoạn mã trên gây ra lỗi thời gian biên dịch trong c # 7.0, nhưng trong c # 8.0, nó biên dịch mà không có bất kỳ lỗi nào