Как добавить код предупреждения в исключения компиляции?

В предыдущем моем вопросе упомянули что это можно сделать, но как не подсказали и в документации не нашел. Может кто-то знает, буду благодарен

Нравится

1 комментарий
Лучший ответ

Добрый день, Евгений.

Снизу прикрепил пример, где я добавил конкретный участок кода в исключение при компиляции. В результате warning CS4014 не появился. Можно реализовать не только препроцессором.

Более детально можно найти в официальной документации:

https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/supp…

using System;
using System.Threading.Tasks;
 
public static class Test{
 
	static void CallingMethodAsync(int millisecondsDelay)
	{
		Console.WriteLine("  Entering calling method.");
 
		// Call #1.
		// Call an async method. Because you don't await it, its completion
		// isn't coordinated with the current method, CallingMethodAsync.
		// The following line causes warning CS4014.
		#pragma warning disable CS4014
		CalledMethodAsync(millisecondsDelay);
		#pragma warning restore CS4014
	}
 
	static async Task CalledMethodAsync(int millisecondsDelay)
	{
		Console.WriteLine("    Entering called method, starting and awaiting Task.Delay.");
 
		await Task.Delay(millisecondsDelay);
 
		Console.WriteLine("    Task.Delay is finished--returning from called method.");
	}
}

 

Добрый день, Евгений.

Снизу прикрепил пример, где я добавил конкретный участок кода в исключение при компиляции. В результате warning CS4014 не появился. Можно реализовать не только препроцессором.

Более детально можно найти в официальной документации:

https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/supp…

using System;
using System.Threading.Tasks;
 
public static class Test{
 
	static void CallingMethodAsync(int millisecondsDelay)
	{
		Console.WriteLine("  Entering calling method.");
 
		// Call #1.
		// Call an async method. Because you don't await it, its completion
		// isn't coordinated with the current method, CallingMethodAsync.
		// The following line causes warning CS4014.
		#pragma warning disable CS4014
		CalledMethodAsync(millisecondsDelay);
		#pragma warning restore CS4014
	}
 
	static async Task CalledMethodAsync(int millisecondsDelay)
	{
		Console.WriteLine("    Entering called method, starting and awaiting Task.Delay.");
 
		await Task.Delay(millisecondsDelay);
 
		Console.WriteLine("    Task.Delay is finished--returning from called method.");
	}
}

 

Показать все комментарии