再次免責聲明還在學習C#和OOP一般,所以我希望你能耐心陪我:)初學者:在C#中擴展一個類,我做錯了嗎?
我目前正在與一個CMS,有一個叫FileVersion
類,它基本上包含的屬性屬於一個工作列表以文件名,文件類型,字節大小,ID,上傳日期,最新版本等文件。
FileVersion
的列表被包含在File
中,該列表具有它自己的唯一ID。
string URL = "/files/"+file.id.toString()+"/"+file.fileVersion.Last().filename;
現在對於我的工作(與該文件是文件專門處理)特定的控制,它:當你要下載從CMS特定文件,URL中使用類似以下內置有意義的是能夠將URL與所有其他FileVersion
信息一起存儲以供以後使用。所以我決定創建一個名爲DocumentVersion
的類,它擴展了FileVersion
。這是什麼樣子:
public partial class DocumentVersion : FileVersion
{
public DocumentVersion() : base() { }
public string link;
}
現在我應該注意,看來我不需要在這裏實現接口 - 但不要把它看作是福音,這就是爲什麼我在這裏。
然而,當我嘗試投我FileVersion
爲DocumentVersion
像這樣:
DocumentVersion dv = ((DocumentVersion)fileversion);
我得到以下異常:
無法轉換 類型的對象Foo.CMS.FileVersion '鍵入 'CoA.DocumentVersion'。
我的暗示是,那是因爲我想從這裏原來駐留在不同的命名空間擴展一個類,但就像我說的,OOP是比較新的給我,所以我可能是錯的。
在此先感謝您的幫助。這個社區非常寶貴!我只希望一旦我更熟練起來,我可以回饋一些:)。
你可以編輯你的問題來包含'FileVersion'的類聲明嗎?你可能無法擴展它 – 2009-11-10 10:45:35
我很喜歡Russ,但不幸的是我不能這樣做,因爲FileVersion的類聲明位於我沒有源代碼的dll中。一般來說,如何判斷一個類是否可擴展? – 2009-11-10 11:01:02
非常感謝大家爲你所有的偉大答案。最後我接受了Brian's,因爲他是最完整的,而且線程結束的過程中,我學到了我需要的一切。再次感謝大家的時間。啊哈! – 2009-11-12 00:18:27