gpt4 book ai didi

c# - 使用指向属性的函数设置值

转载 作者:行者123 更新时间:2023-11-30 23:01:07 26 4
gpt4 key购买 nike

假设我有一个模型:

public class MyModel 
{
public int MyProperty { get; set; }
}

比起我有一个指向 MyProperty 的函数:

Func<MyModel, int> func = x => x.MyProperty;

因此,我想使用这个函数更改已初始化对象的属性:

var myModel = new MyModel();
?????

最佳答案

您需要将“MyProperty”的新值作为参数传递给您的 Func

    Func<MyModel,int, int> func = (x, newValue) => 
{
x.MyProperty = newValue;
return newValue;
};

然后像这样使用它:

    var m = new MyModel();
func(m, 2);

或者,如果您对返回值不感兴趣,可以将 Func 转换为 Action:

Action<MyModel,int> func = (x, newValue) => x.MyProperty = newValue;

此外,您可以在闭包中捕获“MyModel”变量,这样您就不会在每次想要更改“MyProperty”的值时显式传递实例:

var myModel = new MyModel();    

Func<MyModel, Action<int>> getSetter = x =>
newValue=>x.MyProperty = newValue;

var setter = getSetter(myModel);

setter(3);
setter(4);

关于c# - 使用指向属性的函数设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51243216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com