.NET 4.x Изменить значение переменной, хранящей ссылку - C#
Формулировка задачи:
Добрый день!
Столкнулся со следующей задачей, которую не могу решить.
Есть два класса
1) Input
2) Output
Необходимо сделать возможность создавать привязку между экземплярами этих классов, для этого в классе Input сделано свойство типа Output, хранящее ссылку на необходимый экземпляр класса Output, который необходимо привязать.
Это сделано.
Но вот еще необходимо сделать возможность менять привязки. То есть, например, в один момент мы присвоили свойству Output объекта input ссылку на объект output1, в другой момент мы хотим привязать к input не output1, а output2... То есть после перепривязки при обращении input.Output мы должны уже обращаться к output2 а не к output1.
Следующий код желаемого результата не дает:
Помогите пожалуйста разобраться. Как значение переменной, хранящей ссылку на какой-то объект, изменить на ссылку на другой экземпляр этого же класса!
class Input { ... private Output _output; Public Output Output { get { return _output; } set { _output = value; } } ... } class Output { ... }
Input input = new Input(); Output output = new Output(); Input.Output = output;
Input input = new Input(); Output output1 = new Output(); Output output2 = new Output(); Input.Output = output1; ... ... ... Input.Output = output2;
Решение задачи: «.NET 4.x Изменить значение переменной, хранящей ссылку»
textual
Листинг программы
class Program { class Input { private Output _output; public Output PropertyOutput { get { return _output; } set { _output = value; } } public Input() { PropertyOutput = new Output(); } } class Output { static int counter; int number; public int Number { get { return number; } set { number = value; } } public Output() { number = counter++; } public void Print() { Console.WriteLine("Otput number : {0} ", number); } } public static void Main() { Input input = new Input(); Output[] OutputArray = new Output[3] { new Output(), new Output(), new Output() }; foreach (Output item in OutputArray) { input.PropertyOutput = item; input.PropertyOutput.Print(); } Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д