在 C# 中,是否将 属性 return 的存储值覆盖到 parent class?

In C#, does an overriden property return the stored value to the parent class?

我有一个订单表格的基页。在这个基页中有一些抽象的属性。它们在 child class 中被覆盖。其中一个 属性 被称为 CompanyName。这是一个字符串。在 child class 中,我添加了从公司名称集合中提取公司名称的代码。由于重写的 属性 获得了一个 CompanyName,parent class 是否可以访问由 child 的 class 版本的方法获得的值?

这是我的 parent class 名为 OrderFormBasePage 的片段:

protected string GetNextInvoiceNumber()
        {
            using (NewUOCompany db = new NewUOCompany())
            {

            }

            var model = new InvoiceModel();
            return model.GetNextInvoiceNumber(CompanyID).ToString();
        }

        #region Properties
        protected int CompanyID { get; }
        protected abstract string CompanyName { get; }
        protected abstract string OutputFilename    { get; }
        protected abstract string SourcePDFPath     { get; }
        #endregion

这是名为 GetEuropeanSubmissionForm 的 child class 的片段:

public partial class GetEuropeanSubmissionForm : OrderFormBasePage
    {
        #region Properties
        protected override string CompanyName
        {
            get { return Constants.companyNames.EuropeanCompanyName; }
        }
        protected override string OutputFilename
        {
            get { return "Submission Form - Europe.pdf"; }
        }
        protected override string SourcePDFPath
        {
            get { return "~/pdf/" + OutputFilename; }
        }
        #endregion
    }

基本上,当用户想要下载欧洲表格 pdf 时,他们会被重定向到 GetEuropeanSubmissionForm 页面。后面的代码将提供正确的公司名称和正确的 pdf。但需要修改 pdf 以显示正确的 CompanyName、CompanyID 和发票编号。我知道如何通过硬编码配置文件来做到这一点,但这个解决方案让我只在一个地方而不是在许多地方管理代码。因此,如果我想在 OrderFormBasePage 中编写 CompanyID 检索代码,并且如果我想在数据库中搜索与 GetEuropeanSubmissionForm 中提取的 CompanyName 相对应的 CompanyID,OrderFormBasePage 的 CompanyName 属性 现在是否应该包含由获取欧洲提交表格?我尝试搜索 "C# overriden property returning value to parent class" 但没有找到任何结果。感谢您的任何建议!

是的。

重写的全部意义在于 所有 对该成员的调用,无论它们是通过什么类型进行的,都调用被重写的版本。

是的,当基础 class 访问属性时,它将获得在父 class.

中设置的值

检查这个例子,特别是区域 属性 和它在 Shape.ToString() 方法中的用法。

https://msdn.microsoft.com/en-us/library/yd3z1377.aspx

这就是多态行为的思想,公分母根据其背后的实际实例采取不同的行为形态。