Код: Выделить всё
@foreach(var someItem in SomeStringList)
{
@someItem
}
@code {
public List SomeStringList = new() { "Item 1", "Item 2", "Item 3" };
public List SomeOtherStringList = new() { "Item A", "Item B", "Item C" };
}
Но я бы ожидал ошибку компилятора, потому что я переоборудовал переменную electiTem внутри вложенной фореаче , в то время как внешний некоторое количество все еще в области (и даже используется в лямбде для клика handler). />
Почему эта компиляция без конфликта? Seleyitem как во внешних, так и во внутренних петлях Foreach. Я ожидал, что компилятор будет жаловаться на конфликт имени, поскольку внешняя переменная все еще упоминается в выражении Lambda. Тем не менее, код, скомпилированный без какой -либо ошибки, и обе петли работают. Я хочу понять, почему C# допускает это и является ли это безопасно или просто затеняет переменную.
Подробнее здесь: https://stackoverflow.com/questions/797 ... iable-name