在C# 4.0中,可以使用友元类(Friend Class)的概念来实现这个需求。友元类是一种特殊的类,它可以访问另一个类的私有成员,但只能是特定的类。
以下是一个示例:
public class ClassA
{
private int _privateField;
public void SetPrivateField(int value)
{
_privateField = value;
}
public int GetPrivateField()
{
return _privateField;
}
}
public class ClassB
{
public void AccessPrivateField(ClassA obj)
{
int value = obj.GetPrivateField();
obj.SetPrivateField(value + 1);
}
}
public class ClassC
{
public void AccessPrivateField(ClassA obj)
{
// 下面这行代码会引发编译错误,因为ClassC不是特定的类
int value = obj._privateField;
}
}
在这个示例中,ClassA
有一个私有字段_privateField
,以及两个公共方法SetPrivateField
和GetPrivateField
用于设置和获取私有字段的值。ClassB
是一个特定的类,它可以访问ClassA
的私有字段,而ClassC
不是特定的类,它不能访问ClassA
的私有字段。
总结:
在C# 4.0中,可以使用友元类的概念来实现让一个类的私有成员只能用于特定的其他类的需求。但是,C# 9.0引入了一种更加优雅的方式来实现这个需求,即internal
修饰符和InternalsVisibleTo
属性。这些功能可以让你限制一个类的私有成员只能在特定的程序集中访问。
领取专属 10元无门槛券
手把手带您无忧上云