Метод итератора (метод, содержащий выход) не будет проверять аргументы до тех пор, пока вызывающая сторона не начнет перечислять элементы результата. Чтобы гарантировать немедленную проверку аргументов (при вызове метода), переместите итератор в отдельный метод (локальную функцию).
Я не делаю этого понять, о какой проверке идет речь. Мне кажется, это относится к проверке типов, но приведенный ниже пример кода правильно выдает ошибку сборки, несмотря на то, что для итератора не используется отдельная функция.
Код: Выделить всё
public IEnumerable GetIntegers()
{
var strings = new List { "1", "2", "3" };
foreach(var s in strings)
{
yield return s; //
Подробнее здесь: [url]https://stackoverflow.com/questions/79046227/rcs1227-what-validation-is-performed-by-an-iterator-function[/url]
Мобильная версия