gpt4 book ai didi

c# - 对不同类型 Func 的引用

转载 作者:太空狗 更新时间:2023-10-29 20:22:07 25 4
gpt4 key购买 nike

我有一个单例,可以注册一个函数来解析每种类型的 id 值:

public void RegisterType<T>(Func<T, uint> func)

例如:

RegisterType<Post>(p => p.PostId );
RegisterType<Comment>(p => p.CommentId );

然后我想解析一个对象的 id,像这样:

GetObjectId(myPost);

GetObjectId定义在哪里

public uint GetObjectId(object obj)

问题是,我如何存储每个函数的引用以便最近调用它。问题是每个 func 都有不同的 T 类型,我不能这样做:

private Dictionary<Type, Func<object, uint>> _typeMap;

如何解决呢?表达式树?

问候以西结

最佳答案

您不需要表达式树按照您建议的方式进行操作,只需要在注册时嵌套函数即可。

public void RegisterType<T>(Func<T, uint> func){
_typeMap.Add(typeof(T), obj=>func((T)obj));
}

关于c# - 对不同类型 Func 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5143135/

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