在 Delphi 中,private
修饰符可能是唯一的:
Contoso = class
private
procedure DoStuff();
end;
你会认为 C# 相当于:
class Contoso
{
private void DoStuff()
{
}
}
但是在 Delphi 中,private
关键字是 more unit friend。换句话说,同一代码文件中的其他类可以访问私有成员。将 Delphi 转码为 C#,相当于以下代码的工作:
public class Contoso
{
private void DoStuff()
{
}
}
internal class Fabrikam
{
Contoso _contoso;
//constructor
Fabrikam()
{
_contoso = new Contoso();
_contoso.DoStuff(); //i can call a private method of another class
}
}
即使该方法DoStuff
是私有的,同一文件中的Contoso
其他类也可以调用该方法。
我不想要的是制作方法internal
:
class Contoso
{
internal void DoStuff();
}
因为然后程序集中的其他代码可以看到或调用该DoStuff
方法;我不想要。
C# 是否支持某种单位朋友或单位内部访问修饰符?