Функция / метод в инициализаторе коллекции C#
Я могу вставить метод / функцию в инициализатор коллекции? я пытаюсь вставить выражение в функцию в инициализаторе коллекции, но переменная в классе запрашивает объявление своего тела. Спасибо.
List<demo> ags = new List<demo>()
{
new demo { acst = "One", currUpd() = () => { intba += totint; } , st = 1 < 2},
new demo { acst = "Two", currUpd() = () => { intba += intp; } = 0, st = 1 < 2 },
new demo { acst = "Three", currUpd() = () => { intba += pp; }, st = 1 < 2 }
};
var agss = ags.Select(x => new {acst = x.acst, currUpd = x.currUpd, st = x.st });
foreach (var item in agss)
{
if (item.st == true)
{
item.currUpd();
}
}
public class demo
{
public string acst { get; set; }
public delegate void currUpd() { get; set; }
public bool st { get; set; }
}
1 ответ
Вы не можете объявить свойство делегата таким образом. Объявите это как Action
вместо:
public Action currUpd { get; set; }
Теперь вы можете сделать:
List<demo> ags = new List<demo>()
{
new demo { acst = "One", currUpd = () => { intba += totint; } , st = 1 < 2},
new demo { acst = "Two", currUpd = () => { intba += intp; }, st = 1 < 2 },
new demo { acst = "Three", currUpd = () => { intba += pp; }, st = 1 < 2 }
};
Я предполагаю = 0
На втором demo
была опечатка