【发布时间】:2010-10-24 11:17:53
【问题描述】:
您好,
我刚刚在 VS 2010 中将一个 ASP.NET 网站项目转换为 Web Application Project。在我运行应用程序之后,虽然我的类多态性似乎被破坏了。我不知道为什么会发生这种情况。
所以在下面的代码中,当我调用 base.OnLoad(e) 时,我在基类中遇到错误,因为变量 myString 为空。事实上,基类的所有变量都是空的。我可以的
base.myString = this.myString;
之前
base.OnLoad(e);
但这对我来说似乎不是多态的。
代码:
public partial class FormA : Web.ClassB
{
protected override void OnLoad(EventArgs e)
{
myString = "TEST";
base.OnLoad(e);
}
}
public class ClassB
{
protected String myString;
protected override void OnLoad(EventArgs e)
{
// Class C has a virtual OnLoad method (not shown here)
}
}
【问题讨论】:
-
“...我的类多态性破坏了”的可能性有多大?您的代码中是否更有可能出现错误/误解?
-
也许这是一个错误,但我所做的只是更改 Web 项目类型。此代码在网站项目中运行良好。当我查看 FormA.base 时,所有变量都为空,鉴于这些类的代码没有更改,什么会导致这种情况发生?
标签: asp.net visual-studio-2010 polymorphism