发现C#的一个弱点

写了如下代码:

复制代码
    [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
    
public class TypeConditionAttribute<TValue> : Attribute
    {
        
/// <summary>
        
/// The field name of type field
        
/// </summary>
        public string TypeField { getset; }

        
public TValue Value { getset; }

        
public TypeConditionAttribute(string typeField, TValue value)
        {
            TypeField 
= typeField;
            Value 
= value;
        }

        
public bool Evaluate(object record)
        {
            FieldInfo fieldInfo 
= record.GetType().GetField(TypeField);
            
object value = fieldInfo.GetValue(record);
            
return this.Value.Equals((TValue)value);
        }
    }
复制代码

 

结果不能编译,原因是“Attribute”是一个特性类,无法从它派生泛型类型。有点出乎意外。

 

posted @   刘俊峰  阅读(965)  评论(6编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示