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

C#受保护的成员通过基类变量访问

在C#中,受保护的成员可以被其所属类的实例以及从该类派生的子类实例访问。如果一个成员被声明为受保护的,那么它可以被类的外部代码访问,但是只能通过一个基类的变量来访问。这是因为受保护的成员提供了一种限制访问的方式,只允许派生类和友元类访问,同时限制了基类的实例访问。

例如,如果一个基类有一个受保护的成员,那么派生类可以通过基类的实例访问该成员,但是基类的实例不能直接访问该成员。这是因为受保护的成员只能被派生类访问,而不能被基类访问。

以下是一个示例代码:

代码语言:csharp
复制
class BaseClass
{
    protected int x;
}

class DerivedClass : BaseClass
{
    void AccessProtectedMember()
    {
        BaseClass baseObj = new BaseClass();
        DerivedClass derivedObj = new DerivedClass();

        baseObj.x = 10; // Error: cannot access protected member through base class instance
        derivedObj.x = 20; // OK: can access protected member through derived class instance
    }
}

在上面的代码中,BaseClass有一个受保护的成员xDerivedClass继承自BaseClass。在AccessProtectedMember方法中,我们尝试通过基类的实例和派生类的实例访问x。由于受保护的成员只能被派生类访问,因此尝试通过基类的实例访问x会导致编译错误。而通过派生类的实例访问x是允许的。

总之,受保护的成员可以通过基类变量访问,但是只能在派生类的实例中访问。

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

相关·内容

领券