Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中,重写的属性是否将存储的值返回给父类?_C#_.net_Properties_Return Value - Fatal编程技术网

在C#中,重写的属性是否将存储的值返回给父类?

在C#中,重写的属性是否将存储的值返回给父类?,c#,.net,properties,return-value,C#,.net,Properties,Return Value,我有一个订购单的基本页面。在这个基本页面中有一些抽象属性。它们在子类中被重写。一个特别的属性叫做CompanyName。这是一根绳子。在子类中,我添加了从CompanyName集合中提取CompanyName的代码。由于重写的属性获取CompanyName,父类是否可以访问由该方法的子类版本获取的值 下面是我的父类OrderFormBasePage的一个片段: protected string GetNextInvoiceNumber() { using

我有一个订购单的基本页面。在这个基本页面中有一些抽象属性。它们在子类中被重写。一个特别的属性叫做CompanyName。这是一根绳子。在子类中,我添加了从CompanyName集合中提取CompanyName的代码。由于重写的属性获取CompanyName,父类是否可以访问由该方法的子类版本获取的值

下面是我的父类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的子类的一个片段:

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页面。隐藏的代码将提供正确的CompanyName和正确的pdf。但需要修改pdf以显示正确的公司名称、公司ID和发票号。我知道如何通过硬编码一个配置文件来实现这一点,但是这个解决方案允许我只在一个地方而不是在多个地方管理代码。因此,如果我想在OrderFormBasePage内部为CompanyID检索编写代码,如果我想在数据库中搜索与GetEuropeanSubmissionForm中提取的CompanyName对应的CompanyID,OrderFormBasePage的CompanyName属性现在是否应该包含GetEuropeanSubmissionForm提取的CompanyName?我尝试搜索“C#重写属性并将值返回父类”,但没有找到结果。谢谢你的建议

是的

覆盖的全部要点是,对该成员的所有调用,无论是通过何种类型进行的,都会调用被覆盖的版本。

覆盖的全部要点是,对该成员的所有调用,无论是通过何种类型进行的,都会调用被覆盖的版本。

覆盖的全部要点是,对该成员的所有调用,无论是通过何种类型进行的,都会调用被覆盖的版本。


重写的全部要点是,对该成员的所有调用,无论是通过何种类型进行的,都会调用被重写的版本。

是的,当基类访问属性时,它将获得在父类中设置的值

检查此示例,尤其是Shape.ToString()方法中的area属性及其用法


是,当基类访问属性时,它将获得在父类中设置的值

检查此示例,尤其是Shape.ToString()方法中的area属性及其用法


是,当基类访问属性时,它将获得在父类中设置的值

检查此示例,尤其是Shape.ToString()方法中的area属性及其用法


是,当基类访问属性时,它将获得在父类中设置的值

检查此示例,尤其是Shape.ToString()方法中的area属性及其用法



这是多态行为的概念,公共分母根据其背后的实际情况采取不同的行为形式

这是多态行为的概念,公共分母根据其背后的实际情况采取不同的行为形式

这是多态行为的概念,公共分母根据其背后的实际情况采取不同的行为形式

这是多态行为的概念,公共分母根据其背后的实际情况采取不同的行为形式

因此,为了澄清,如果我在OrderFormBasePage中添加对CompanyName成员的调用,返回的CompanyName值就是GetEuropeanSubmissionForm页面获得的值?这就是我希望从配置文件到继承属性和方法的转变;无论您从何处调用它,它都将始终调用被覆盖的成员。因此,请澄清,如果我在OrderFormBasePage中添加对CompanyName成员的调用,则返回的CompanyName值是GetEuropeanSubmissionForm页获得的值?这就是我希望从配置文件到继承属性和方法的转变;无论您从何处调用它,它都将始终调用被覆盖的成员。因此,请澄清,如果我在OrderFormBasePage中添加对CompanyName成员的调用,则返回的CompanyName值是GetEuropeanSubmissionForm页获得的值?这就是我希望从配置文件到继承属性和方法的转变;无论您从何处调用它,它都将始终调用被覆盖的成员。因此,请澄清,如果我在OrderFormBasePage中添加对CompanyName成员的调用,则返回的CompanyName值是GetEuropeanSubmissionForm页获得的值?这就是我希望从配置文件到继承属性和方法的转变;无论从何处调用,它都将始终调用重写的成员。如果我尝试在OrderFormBasePage文件的using块中使用CompanyName属性,CompanyName属性的值是否为GetEuropeanSubmissionForm文件中获得的值?是,我添加了一个linqpad截图来证明这一点:-)这张图片帮助很大。GetCompanyName()方法返回this.CompanyName,表示BaseOrderForm中的CompanyName属性。因此,即使CompanyName在BaseOrderForm中是抽象的,它仍然从EuropeanOrderForm返回值。如果用户点击“日文表单”按钮后调用另一个表单,比如日文订单,它会返回该页面的CompanyName属性,对吗?现在说得通了,我只是想大声说出来。谢谢!:)如果我尝试在OrderFormBasePage文件内的using块中使用CompanyName属性,是否