Передайте FieldName в качестве параметра
internal class Program { private static void Main(string[] args) { var bar = new Bar {A = 1, B = 2, C = 3}; Console.WriteLine(new Foo().X(bar, it => it.A)); Console.WriteLine(new Foo().X(bar, it => it.B)); // or introduce a "constant" somewhere Func
cFieldSelector = it => it.C; Console.WriteLine(new Foo().X(bar, cFieldSelector)); } } internal class Foo { // Instead of using a field by name, give it a method to select field you want. public int X(Bar bar, Func fieldSelector) { return fieldSelector(bar) * 2; } public int A(Bar bar) { return bar.A * 2; } public int B(Bar bar) { return bar.B * 2; } public int C(Bar bar) { return bar.C * 2; } } internal class Bar { public int A; public int B; public int C; } .cs-file
c#
reflection
anonymous-function
2021-12-22T11:01:04+00:00
2022-10-04T09:26:33+00:00
Germiona
Вопросы с похожей тематикой, как у вопроса:
Передайте FieldName в качестве параметра
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.