2010-04-16 45 views
2

我wana decroate我的方法和gui控件與自定義屬性。我想知道屬性如何消耗內存或影響應用程序的性能。 Attribute的生命週期是什麼?意味着當一個類的對象具有方法,屬性和屬性中的自定義屬性時。被實例化並且然後處置。如果所有定製的屬性實例都是在對象被拒絕的情況下處理的,或者stil仍然保留在內存中?在C#中使用自定義屬性是內存/性能瓶頸?

回答

2

屬性存在於類型上,而不是對象實例,因此屬性實例的生存期與對象實例的生存期無關。

重複使用代碼中的屬性可能是一個瓶頸,如果您反覆使用反射來訪問頻繁使用的代碼中的相同屬性。這很容易通過緩存來彌補。具體如何以及何時緩存取決於您的應用程序和環境。

一般而言,屬性爲普通編程場景提供了一個很好的解決方案,正確使用時不會導致內存或性能瓶頸。