RCS1227 — Какая проверка выполняется функцией итератора?C#

Место общения программистов C#
Ответить
Anonymous
 RCS1227 — Какая проверка выполняется функцией итератора?

Сообщение Anonymous »

Я читал об анализаторе кода RCS1227, и он говорит следующее:

Метод итератора (метод, содержащий выход) не будет проверять аргументы до тех пор, пока вызывающая сторона не начнет перечислять элементы результата. Чтобы гарантировать немедленную проверку аргументов (при вызове метода), переместите итератор в отдельный метод (локальную функцию).

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

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

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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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