gpt4 book ai didi

c# - 如何存储对基于传递给方法的表达式创建的泛型类型的引用?

转载 作者:行者123 更新时间:2023-11-30 17:17:45 25 4
gpt4 key购买 nike

我有以下方法,它返回类型为 INamedProperty<TReturn> 的通用对象基于已定义表达式的返回类型。我需要存储对该方法返回的对象的引用以供将来处理。我应该将其存储为什么类型?会 Object可以吗?我如何将它转换回适当的 INamedProperty<TReturn>稍后的?我还需要存储 TReturn 的类型吗? ?

public class PropertyBuilder<T> : IPropertyBuilder<T> where T : class {
public INamedProperty<TReturn> Named<TReturn>(Expression<Func<T, TReturn>> property) {
o = new NamedProperty<TReturn>();
// how do I store o as an instance of the encapsulating class?
}
}

提前致谢!

最佳答案

我会尝试实现一个通用的,呃,-通用INamedProperty,它可以实现您需要的操作:

interface INamedProperty
{
// Informational
Type ContainingType { get; }
string Name { get; }
Type ReturnType { get; }

// Operations (for example)
void CopyTo(object obj, INamedProperty property);
}

然后在通用的 NamedProperty 中实现它们:

class NamedProperty<T> : INamedProperty { ... }

关于c# - 如何存储对基于传递给方法的表达式创建的泛型类型的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6273140/

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