小编Spo*_*les的帖子

表达式树中的绑定参数

我想知道如何将参数绑定到表达式树中的值

就像是

Expression<Func<String, String, bool>> e1 = (x,y) => x == y;
Run Code Online (Sandbox Code Playgroud)

然后我想绑定y,同时保留它作为单个表达式.一个明显的尝试将是类似的

Expresion<Func<String, bool>> e2 = x => e1(x, "Fixed Value Here");
Run Code Online (Sandbox Code Playgroud)

但那会把我的表达变成一个Invoke节点.有没有办法在获取第二个表达式的签名时简单地绑定我的第一个表达式中的参数?

c# expression-trees c#-3.0

10
推荐指数
1
解决办法
1783
查看次数

使用泛型键入安全枚举模式实现

如何在泛型类上实现类型安全枚举模式?我们假设它是按照这些方式实现的

public class KnownSetting<T>
{
    public readonly static KnownSetting<String> Name = new KnownSetting<String>("name", "Default Name", t => t);
    public readonly static KnownSetting<int> Size = new KnownSetting<String>("size", "25", t => Converter.ToInt32);

    public String Key { get; set; }
    public T DefaultValue { get; set; }
    public Func<String, T> Converter { get; set; }

    private KnownSetting(String key, T defaultValue, Func<String, T> converter)
    {
        Key = key;
        DefaultValue = defaultValue;
        Converter = converter;
    }
}
Run Code Online (Sandbox Code Playgroud)

由于构造函数保持私有,因此模式的实现是正确的,但是在使用此构造时,它看起来是错误的:

public static class Program
{
    public static …
Run Code Online (Sandbox Code Playgroud)

c# generics enums design-patterns type-safety

10
推荐指数
1
解决办法
1898
查看次数