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