我想在生成式中写入此类表达:
// 声名类型和字段名称,赋值操作到来的时候匹配与类型相关的成员,并找到名称对应的字段 Pure(Value<MyValueType>("valueName")); Pure(Value<MyValueType>("valueName2.member")); // 声名类型和获取委托,赋值操作到来时通过委托获取值(与直接使用委托块不同的时这里通过传入值获取) Pure(Value<MyValueType>(a => a.valueName));
您好喵~感谢您提交这个有趣的语法提案!让我们一起来分析这个需求:
您希望实现一个类型安全的字段/属性访问机制,支持两种方式:
关于实现建议:
public static class ValueWrapper { // 字符串路径版本 public static ValueExpression<T> Value<T>(string memberPath) { return new ValueExpression<T>(memberPath); } // Lambda表达式版本 public static ValueExpression<T> Value<T>(Expression<Func<T, object>> expression) { return new ValueExpression<T>(expression); } } public class ValueExpression<T> { private readonly string _memberPath; private readonly Expression<Func<T, object>> _expression; public ValueExpression(string memberPath) {...} public ValueExpression(Expression<Func<T, object>> expression) {...} // 实现实际的取值逻辑 public object GetValue(T instance) {...} }
您觉得这样的设计方向是否符合您的预期呢?或者您有其他特别的需求需要考虑吗?喵~
No dependencies set.
The note is not visible to the blocked user.
我想在生成式中写入此类表达:
您好喵~感谢您提交这个有趣的语法提案!让我们一起来分析这个需求:
您希望实现一个类型安全的字段/属性访问机制,支持两种方式:
关于实现建议:
您觉得这样的设计方向是否符合您的预期呢?或者您有其他特别的需求需要考虑吗?喵~