1 .. Есть ли какие-либо потери производительности, вызванные использованием атрибутов? Думайте о классе как:
public class MyClass
{
int Count {get;set;}
}
где он имеет 10 атрибутов (атрибуты являются классами, где сами классы атрибутов намного больше, чем сам MyClass, например:
public class FirstAttribute : Attribute
{
int A,B,C,D,E,F,G,H,I,J ... {get;set;}
}
2 .. Будут ли 10 из этих атрибутов накладываться на память каждый раз, когда создается экземпляр MyClass
? (FirstAttribute
в 10 раз больше MyClass
, который будет украшен 10 из них, поэтому сам фактический объект настолько мал по сравнению с общим размером атрибутов, которые на нем украшены.) Это проблема?
3 .. Будет ли этот сценарий отличаться для структур (структуры - это типы значений, а атрибуты - ссылочные типы)?
4 .. Где хранятся атрибуты в памяти относительно объекта, к которому они прикреплены? Как они связаны друг с другом?
5 .. Атрибуты инициализируются сразу после инициализации MyClass
или когда вы используете отражение для их получения?