You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让派生类的每个成员访问基类的公共属性?

实现方案

你当前的写法行不通,因为string类型本身并没有Visible属性。要实现每个成员都能关联Visible状态,得把每个成员包装成一个包含状态的类,这里用泛型类来实现通用包装:

1. 定义泛型包装类

这个类既保存属性的实际值,又包含Visible属性:

public class PropertyWithVisibility<T>
{
    public T Value { get; set; }
    public bool Visible { get; set; }
}

2. 修改派生类的成员类型

把DerivedClass里的FirstName和LastName换成上面的泛型包装类:

public class ParentClass
{
    // 若ParentClass的Visible是实例级状态可保留,和成员级Visible互不冲突
}

public class DerivedClass : ParentClass
{
    public PropertyWithVisibility<string> FirstName { get; set; } = new PropertyWithVisibility<string>();
    public PropertyWithVisibility<string> LastName { get; set; } = new PropertyWithVisibility<string>();
}

3. 使用示例

现在就可以像你期望的那样访问和修改Visible属性了:

public class MainClass
{
    public DerivedClass derived = new DerivedClass();

    public void Test()
    {
        // 设置成员的Visible状态
        derived.FirstName.Visible = true;
        derived.LastName.Visible = false;

        // 设置成员的实际值
        derived.FirstName.Value = "John";
        derived.LastName.Value = "Doe";
    }
}

内容的提问来源于stack exchange,提问作者user1770517

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:12:10