的包裝可以說我有下面的代碼:創造TreeView.Node
public class Base
{
// Some stuff here
public int var
}
public class UsingBase
{
// Some more stuff here
public Base B = new Base();
}
現在讓我們假設這些類的實際代碼是巨大的,我想UsingBase做一些額外的東西。所以我正在考慮對它進行子類化。現在讓我們說,我真正想要做的是添加一個方法,給我兩次var。由於var是Base的一個字段,因此將該方法添加到Base的子類而不是UsingBase的子類會更加優雅。但我不想重寫UsingBase,而UsingBase使用Base而不是我的Base的子類。其實,這正是我想要做的:
TreeView(.NET)有一個TreeNodeCollection類型的屬性,名爲Nodes,它存儲了一堆TreeNode類型的對象。節點中的每個TreeNode都可以有一個標籤,我可以用它來存儲我想要的任何對象。但是類TreeNodeCollection沒有一個函數,它給了我對應於某個Tag的TreeNode。所以,我希望能夠做到這一點:
TreeView myTreeView = new TreeView();
// Add some TreeNode's and asign unique tags to each of them
TreeNode someNode = myTreeView.Nodes.GetNodeByTag(object Tag);
我知道我可以繼承TreeView和添加,做一個函數,但我只是像其他解決好了很多。所以我想知道這是否可能。
但是,仍然有辦法按照我想要的方式來做到這一點嗎? – Juan 2010-06-24 04:52:27
更新了我的答案;這是否解決您的問題? – Pierreten 2010-06-24 05:33:42
太酷了!沒有想法延伸方法存在。其實我問這不僅僅是因爲我想要做TreeView的東西,而且因爲我想爲WebBrowser子類化,並向該類所用的Document Property和HtmlElement添加一些方法(幾個),所以擴展方法將保持代碼乾淨而優雅。 – Juan 2010-06-24 05:39:54