Net framework 5, а также среды Visual Studio 2012 и C#


Глава.18 .Настраиваемые.атрибуты Условные атрибуты



Download 6,27 Mb.
Pdf ko'rish
bet348/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   344   345   346   347   348   349   350   351   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

484
Глава.18 .Настраиваемые.атрибуты
Условные атрибуты
Программисты все чаще используют атрибуты благодаря простоте их создания, 
применения и отражения. Атрибуты позволяют также снабдить код аннотациями, 
одновременно реализуя другие богатые возможности. В последнее время атрибуты 
часто используются при написании и отладке кода. Например, анализатор кода для 
Microsoft Visual Studio (
FxCopCmd exe
) предлагает атрибут 
System.Diagnostics.
CodeAnalysis.SuppressMessageAttribute
, применимый к типам и членам и пода-
вляющий сообщения о нарушении правила определенного инструмента статического 
анализа. Этот атрибут ищется только кодом анализатора, при нормальном ходе 
выполнения программы он игнорируется. Если вы не анализируете код, наличие 
в метаданных атрибута 
SuppressMessage
просто увеличивает объем метаданных
что не лучшим образом сказывается на производительности. Соответственно, хо-
телось бы, чтобы компилятор задействовал этот атрибут только в случаях, когда 
вы собираетесь воспользоваться инструментом анализа кода.
Класс атрибута, к которому применен атрибут 
System.Diagnostics.
ConditionalAttribute
, называется классом 
условного атрибута
(conditional 
attribute). Пример:
//#define TEST
#define VERIFY
using System;
using System.Diagnostics;
[Conditional("TEST")][Conditional("VERIFY")]
public sealed class CondAttribute : Attribute {
}
[Cond]
public sealed class Program {
public static void Main() {
Console.WriteLine("CondAttribute is {0}applied to Program type.",
Attribute.IsDefined(typeof(Program),
typeof(CondAttribute)) ? "" : "not ");
}
}
Обнаружив, что был применен экземпляр 
CondAttribute
, компилятор помещает 
в метаданные информацию об атрибуте, только если при компиляции кода был 
определен идентификатор 
TEST
или 
VERIFY
. При этом метаданные определения 
и реализации класса атрибута все равно останутся в сборке.



Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   344   345   346   347   348   349   350   351   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish