C# 如何在ASP.NET页面中抽象属性
我使用的是aspx表单。我们所做的是为每种形式声明类似的属性。代码在末尾 所以我在想,如果我们可以有一个基类,它包含所有类似的内容,但是由于表单已经继承了Page类,所以在C中没有多重继承# 所以这里我们可以使用接口来实现这一点,我是oops新手,请让我知道这是可能的还是不可能的C# 如何在ASP.NET页面中抽象属性,c#,asp.net,C#,Asp.net,我使用的是aspx表单。我们所做的是为每种形式声明类似的属性。代码在末尾 所以我在想,如果我们可以有一个基类,它包含所有类似的内容,但是由于表单已经继承了Page类,所以在C中没有多重继承# 所以这里我们可以使用接口来实现这一点,我是oops新手,请让我知道这是可能的还是不可能的 public partial class Default2 : System.Web.UI.Page { public string ImagePath { get; set; } } 您不需要从两个类继承。
public partial class Default2 : System.Web.UI.Page
{
public string ImagePath { get; set; }
}
您不需要从两个类继承。您需要在两者之间创建一个类层 首先创建从页继承的类并添加属性:
public partial class MyPageBase : System.Web.UI.Page
{
public string ImagePath { get; set; }
}
然后从基类继承所有其他类。在那里,您可以访问页面
和MyPageBase
中的所有内容:
public class MyPage : MyPageBase
{
public string TestAccessBaseProp()
{
var foo = base.ImagePath;
}
public string SomeAdditionalProperty { get; set; }
}
你有两个选择
创建基类
您可以创建继承System.Web.UI.Page
的基类,并在所有页面中继承此类:
public class BasePage : System.Web.UI.Page
{
public string ImagePath { get; set; }
}
public partial class Default2 : BasePage
{
....
}
public partial class Default2 : System.Web.UI.Page, Interface1
{
public string ImagePath { get; set; }
}
然后在页面中继承该类:
public class BasePage : System.Web.UI.Page
{
public string ImagePath { get; set; }
}
public partial class Default2 : BasePage
{
....
}
public partial class Default2 : System.Web.UI.Page, Interface1
{
public string ImagePath { get; set; }
}
创建一个接口 您可以创建如下界面:
public interface Interface1
{
string ImagePath { get; set; }
}
然后在所有页面上继承此接口:
public class BasePage : System.Web.UI.Page
{
public string ImagePath { get; set; }
}
public partial class Default2 : BasePage
{
....
}
public partial class Default2 : System.Web.UI.Page, Interface1
{
public string ImagePath { get; set; }
}
如您所见,第一个选项(基类)比接口选项有一些优势。 使用基类时,只需定义和实现属性一次。使用接口时,还必须在每个页面上实现属性
这是因为接口仅用于定义对象上的属性和函数,而不是它们的工作方式。而基类已经可以实现属性和函数。提供的答案对您有帮助吗?如果是,请考虑将正确答案标记为“接受”。如果没有,请继续询问。