首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C#4.0中,有没有办法让一个类的私有成员只能用于特定的其他类?

在C# 4.0中,可以使用友元类(Friend Class)的概念来实现这个需求。友元类是一种特殊的类,它可以访问另一个类的私有成员,但只能是特定的类。

以下是一个示例:

代码语言:csharp
复制
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,以及两个公共方法SetPrivateFieldGetPrivateField用于设置和获取私有字段的值。ClassB是一个特定的类,它可以访问ClassA的私有字段,而ClassC不是特定的类,它不能访问ClassA的私有字段。

总结:

在C# 4.0中,可以使用友元类的概念来实现让一个类的私有成员只能用于特定的其他类的需求。但是,C# 9.0引入了一种更加优雅的方式来实现这个需求,即internal修饰符和InternalsVisibleTo属性。这些功能可以让你限制一个类的私有成员只能在特定的程序集中访问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券