Лучший способ поиска общего выражения TaskC#

Место общения программистов C#
Anonymous
Лучший способ поиска общего выражения Task

Сообщение Anonymous »

Я использую анализатор roslyn, который может обрабатывать асинхронную упаковку Task с объектной переменной, например:

Код: Выделить всё

int GetValue() => ...

void Print(object value) => Console.WriteLine(value);

void Main() {
Print(GetValue());
}
если вы измените:

Код: Выделить всё

-int GetValue() => ...
+Task GetValue() => ...
анализатор должен выдать предупреждение.
На самом деле я нахожусь в самом конце кодирования и просто хочу оптимизировать свой код на этой определенной позиции :
У меня есть метод IsGenericTaskType, в который передается ITypeSymbol, который анализируется на предмет System.Threading.Tasks.Task'1
code> но на самом деле мне не нравится сравнение строк.
Ответ ChatGPT:

Код: Выделить всё

type as INamedTypeSymbol)?.ConstructedFrom.SpecialType == SpecialType.System_Threading_Tasks_Task_T;
но я не могу получить доступ к SpecialType.System_Threading_Tasks_Task_T из-за CS1061..
Есть ли какой-либо способ сравнить мой символ типа без использования струны?

Подробнее здесь: https://stackoverflow.com/questions/790 ... expression

Вернуться в «C#»