2010-10-24 69 views
0

問候打破,多態性改變網站項目時,Web應用程序項目

我只是在2010年VS轉換的ASP.NET網站項目的Web Application Project我運行該應用程序後,雖然似乎我的課多態性爆發。我不知道爲什麼會出現這種情況。

因此在下面的代碼中,當我調用base.OnLoad(e)時,由於變量myString爲null,所以在基類中出現錯誤。實際上,Base類的所有變量均爲null。我能做

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) 
    } 
} 
+4

「......我的類多態性破裂」的可能性有多大?代碼中的錯誤/誤解似乎更可能? – 2010-10-24 01:21:19

+0

也許這是一個錯誤,但我確實是改變了Web項目類型。此代碼在網站項目中運行良好。當我查看FormA.base時,所有變量都是空的,如果這些類的代碼沒有改變,會發生什麼情況? – Sephrial 2010-10-24 01:38:51

回答

1

看起來ClassB的是在一個命名空間或其他類的成員。你有沒有你的命名空間/範圍正確,因爲我遇到了類似將網站轉換爲網絡應用程序的問題。

+0

啊,我想你可能已經把這個釘在了頭上。但我仍然感覺很好,卡住了dillema。在我的解決方案中,我有3個項目(3個獨立程序集),而我的類B位於類庫(namespace =「Lib」)中,類A位於Web項目中(默認namespace =「Web」)。我是否必須爲兩個項目使用相同的命名空間?它可以是「Base.Lib」和「Base.Web」嗎? – Sephrial 2010-10-25 14:38:44

相關問題