[英]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,GenericParameter,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.