C# 可以从派生类调用基类属性吗

标签 c# overriding setter

我有一个基类,它有一个属性,它有一个 setter 方法。有没有一种方法可以从派生类调用基类中的 setter 并向其添加更多功能,就像我们使用 base 关键字处理重写方法一样。

抱歉,我应该添加一个示例。这是一个例子。希望我做对了:

public class A 
{
    public abstract void AProperty 
    {
        set 
        {
            // doing something here
        }
    }
}

public class B : A 
{   
    public override void AProperty 
    {
        set 
        {
            // how to invoke the base class setter here

            // then add some more stuff here
        }
    }   
}

最佳答案

编辑:修改后的示例应该演示调用顺序。编译为控制台应用程序。

class baseTest 
{
    private string _t = string.Empty;
    public virtual string t {
        get{return _t;}
        set
        {
            Console.WriteLine("I'm in base");
            _t=value;
        }
    }
}

class derived : baseTest
{
    public override string t {
        get { return base.t; }
        set 
        {
            Console.WriteLine("I'm in derived");
            base.t = value;  // this assignment is invoking the base setter
        }
    }
}

class Program
{

    public static void Main(string[] args)
    {
        var tst2 = new derived();
        tst2.t ="d"; 
        // OUTPUT:
        // I'm in derived
        // I'm in base
    }
}

关于C# 可以从派生类调用基类属性吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5108319/

相关文章:

c# - .NET 核心 3.1 gRPC docker : Could not make proto path relative

c# - 是否有必要在控制处理之前明确清除数据绑定(bind)?

c# - 使用 MVVM 在 Windows 商店应用程序中更改框架

python - 如何优雅地将类的所有属性作为函数中的参数传递?

java - 在构造函数中从另一个类设置值

c# - 这是接口(interface)的错误使用吗?

c++ - 调用一个函数的 child 版本而不是 parent ?

java - 为什么我的 toString() 类会被自动覆盖?

overriding - 带有 -webkit-mask-image 的元素上的框阴影

java - 这两种方法有什么区别?