4
A
回答
9
如果您可以訪問您需要的類中的數據,並且可以使用方法而不是屬性,請查看在C#3.0中引入的extension methods。從這篇文章中,這裏的加入到(密封的,不可修改)String類的擴展方法:
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
從the horse's mouth,擴展性質是在C#未來版本的可能性。
如果您需要訪問私人字段或方法,這不會對您有所幫助。在這種情況下,你可能會考慮反思,但我建議不要這樣做,除非它真的有必要 - 有時候它可能會變得混亂。
1
如果屬性的目的是爲了數據綁定,那麼您可以在控制使用TypeDescriptionProvider
,這是一個ICustomTypeDescriptor
工廠外面添加運行屬性類型。然後,您會鏈接原始提供商並創建一個自定義PropertyDescriptor
,獲取附加數據。
這對於基於現有屬性(以及「相當容易」我的意思是「僅略微瘋狂」)計算的只讀額外屬性是相當容易的,但對於讀寫屬性(或屬性是獨立於現有成員)這是非常困難的,因爲你需要弄清楚在哪裏把這些值(仍然得到垃圾收集等)。不平凡的。
相關問題
- 1. 將依賴屬性添加到現有的.NET類
- 2. 將屬性添加到庫中的現有類
- 3. 添加屬性噸現有類
- 4. 添加屬性到現有的XMLNodes
- 5. 添加屬性到現有datomic架構
- 6. Magento 1.7將屬性添加到類別
- 7. 將類添加到其他屬性
- 8. 將屬性添加到超類UIView
- 9. Uml-Designer:將java.net.URL屬性添加到類
- 10. 將「屬性」或類添加到變量
- 11. 幫助將屬性添加到LinqToSql類
- 12. ArrayIndexOutOfBoundsException將屬性添加到常規類
- 13. 將屬性動態添加到類C#
- 14. 將動態屬性添加到.NET類
- 15. 將屬性添加到關聯類ManyToMany
- 16. 將DebuggerStepThrough屬性添加到類
- 17. 將異常屬性添加到類中?
- 18. 將形狀添加到類屬性
- 19. 將附加屬性添加到現有控件中
- 20. 可能通過C#將類添加到對象的現有類屬性?
- 21. 使用Roslyn將自動實現的屬性添加到類中
- 22. 將屬性添加到屬性
- 23. Magento將Sub屬性添加到屬性?
- 24. 將屬性添加到TTPhoto
- 25. 將屬性添加到Q_PROPERTYs
- 26. 將屬性添加到IXmlNode
- 27. 將屬性添加到TreeNode
- 28. 將屬性添加到UITableViewCell
- 29. 將屬性添加到DataColumn
- 30. 將屬性添加到BehaviorExtensionElement
嚴格地說,C#3.0(不是.NET 3.0),因爲如果你只是定義屬性,你可以使用擴展方法來對*任何*版本的.NET。 – 2010-09-28 07:36:24
@Marc:d'oh!編輯,謝謝。 – 2010-09-28 07:50:25