项的集合,使作为集合的项的字段可访问



我不知道这是否可能,也不知道怎么可能。我想稍后再使用这个,比如:

//setting a single item as known.
label1.BackColor=Color.FromARGB(255,255,255);
/*setting multiple items in something like a container (wanted, not yet possible)*/
sContainer.BackColor=Color.FromARGB(255,255,255);
//and that's how it works recently with my class...
sContainer.SetValues("BackColor",Color.FromARGB(255,255,255));

容器将不得不使用泛型和反射我猜。容器类应该"复制"t类(这里是Control)的所有可设置属性。因此,如果我使用SetContainer<Control>,我可以通过sContainer1.BackColor=...设置容器中的所有背景色值。

我的代码直到知道看起来像:

public class SetContainer<T>:IList<T>
{
/*I've implemented all methods of IList by using the elements-List*/
private List<T> elements;
public void SetValues(string propname,object value)
    {
     FieldInfo f=typeof(T).GetField(propname);
     elements.ForEach(x=>f.SetField(x,value);
    }
}

我很抱歉,我不知道如何描述这很容易理解。

通过使用this (this的修改版本),你可以将泛型类的属性"link"添加到容器类中。

这使得将一个值应用于整个值集合成为可能。

谢谢@Sagi !

相关内容

  • 没有找到相关文章

最新更新