Я не уверен, что это возможно в C#. Но я хотел бы узнать, как это можно сделать легко.Связать переменную с списком
public partial class Form1
{
// I left out the unimportant code for this example
private myControl cLeft,cTop,cBottom,cRight;
private List<myControl>mControls;
public Form1()
{
InitializeComponents();
//this list should contain the fields cLeft,cTop,cBottom,cRight...
mControls=new List<myControl>(){cLeft,cTop,cBottom,cRight};
/* now I want that cLeft and so on get assigned...
of course, this doesn't work because the list refers to the values of
cLeft ... which are null. So I would need to store a reference to those fields to get this work.*/
mControls.ForEach(x=>x=new myControl(this));
}
}
Я уверен, что это может быть сделано с помощью отражения, но я предполагаю, что там должен быть способ сделать это легко в C# или не возможно?
Не уверен, что вы ищете. Если вы создаете 4 экземпляра 'myControl' и добавляете их в список, вам все равно нужно создавать их, как вы делаете. Мне кажется довольно легко. Или же 'cLeft' и т. Д. Уже существуют в дизайнере, и вы пытаетесь добавить _those_ в список? –
Это невозможно, даже с отражением. Для этого вам нужно будет сделать несколько обманщиков с «небезопасными». Это также действительно очень плохой идеей сделать это, вы должны переосмыслить то, что вы пытаетесь достичь. Переменные, которые изменяются за вашей спиной через код, который, как представляется, не имеет ничего общего с переменными, - это рецепт для неуправляемой кодовой базы. – Rob
Это похоже на этот вопрос http://stackoverflow.com/questions/7816781/tolist-foreach-in-linq – singsuyash