Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

C# tương đương từ khóa friend của C++

Friend trong C++

Friend function/class truy cập được private/protected member của class khác.

Tương đương C#

C# không có friend. Cách gần nhất: Nested class (lồng lớp) truy cập private của outer class.

class Outer
{
    private int secret = 42;
    
    class Inner
    {
        public void Reveal(Outer o)
        {
            Console.WriteLine(o.secret); // Truy cập được private
        }
    }
}

Các cách khác:

  • internal - truy cập trong cùng assembly
  • protected internal - assembly hoặc derived class
  • private protected - cùng assembly và derived class
  • Interface + internal implementation
  • Friend assemblies: [assembly: InternalsVisibleTo("AssemblyName")]

Nested class là cách trực tiếp nhất mô phỏng friend.