繁体   English   中英

C#:集合元素上的属性

[英]C#: Attribute on collection element

在C#中,可以将属性应用于元素吗? 我有Dictionary<string,Func<int,int,int>>并以这种方式添加元素

Dictionary<string,Func<int,int,int>> dict = new Dictionary<string,Func<int,int,int>>();

dict.Add("SUM", (a,b) => {return a+b;});

因此,我想通过键"SUM"向元素添加其他信息,例如"Returns summary of two numbers" 可以使用属性完成此操作,还是必须在集合中包括其他数据?

如果您查看可以应用属性的内容,则会注意到您只能将其应用到Assembly,Class,Constructor,Delegate,Enum,Event,Field,Gen​​ericParameter,Interface,Method,Module,Parameter,Property,ReturnValue,或Struct( )。 您不能将属性应用于单个值,因此必须存储其他数据,您可以创建一个小类,例如:

public class Operation
{
    public string Description {get;set;}
    public Func<int, int, int> Func {get;set;}
}

然后像下面这样在字典中使用它:

dict.Add("SUM", new Operation() { 
    Description = "Adds numbers", 
    Func = (a,b) => {return a+b;} 
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM