Obsolete
[Obsolete("abcde")]
даёт предупреждение, а не текст
в консоль. Сообщение читают через
отражение. Параметр
error: true делает
использование ошибкой - такой
метод в примере не вызывают.
Синтаксис
[Obsolete("abcde")]
class Legacy
{
}
Пример
Давайте прочитать
Message у устаревшего
класса:
using System;
using System.Reflection;
[Obsolete("abcde")]
class Legacy
{
}
class Program
{
static void Main()
{
ObsoleteAttribute item = typeof(Legacy)
.GetCustomAttribute<ObsoleteAttribute>();
string res = item.Message;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте проверить IsError
при error: true:
using System;
using System.Reflection;
[Obsolete("abcde", error: true)]
class Blocked
{
}
class Program
{
static void Main()
{
ObsoleteAttribute item = typeof(Blocked)
.GetCustomAttribute<ObsoleteAttribute>();
bool res = item.IsError;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте сравнить IsError
без флага ошибки:
using System;
using System.Reflection;
[Obsolete("abcde")]
class Legacy
{
}
class Program
{
static void Main()
{
ObsoleteAttribute item = typeof(Legacy)
.GetCustomAttribute<ObsoleteAttribute>();
bool res = item.IsError;
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Смотрите также
-
Experimental,
опытное API -
Attribute,
базовый класс -
Conditional,
условный вызов -
Атрибут,
обзор