gpt4 book ai didi

C# 设置通过 Func 传递给方法的属性的属性值

转载 作者:行者123 更新时间:2023-11-30 14:30:10 27 4
gpt4 key购买 nike

我使用此方法获取方法中属性的值:

public static T Decrypt<T>(Func<T> prop, string username, string password)
{
T value = prop();
//do cool stuff with t
return value;
}

我正在寻找一种方法来做相反的事情,设置我的属性(property)的值(value)

public static void Encrypt<T>(Func<T> prop, T value, string username, string password)
{
//do stuff with value
??? set prop ???
}

我已经搜索并尝试了表达式,但云无法让它工作:

public static void Encrypt<T>(Expression<Func<T>> property, T value, string username, string password)
{
//do stuff with value
var propertyInfo = ((MemberExpression)property.Body).Member as PropertyInfo;
propertyInfo.SetValue(property, value);
}

最佳答案

您可以像这样更改 Encrypt 函数:

public static void Encrypt<T>(Action<T> prop, T value, string username, string password)
{
// awesome stuff before
prop(value);
// awesome stuff after
}

然后调用加密:

Encrypt(value => obj.Prop = value, 23, "", "");

关于C# 设置通过 Func<T> 传递给方法的属性的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24057591/

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