Как создать ссылку на строку внутри объекта класса, которая указывает на переменную вне объекта? Добрый вечер. Я пытаюсь хранить внутри объекта ссылку на переменную (Name) вне этого объекта, чтобы при изменении значения по ссылке внутри метода объекта, менялась и сама переменная Name. Короче говоря, я ожидаю, что строка Console.WriteLine(Name); выведет то, что ввели в методе startExecution(). Подскажите, возможно ли вообще это реализовать?using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { public class stateEnterWord { private string word; public void init(ref string input) { word = input; } public void startExecution() { word = Console.ReadLine(); } } static void Main(string[] args) { stateEnterWord obj = new stateEnterWord(); string Name = ""; obj.init(ref Name); obj.startExecution(); Console.WriteLine(Name); } } }
К сожалению, в C# нельзя создать ссылку на переменную вне объекта внутри объекта класса. В данном случае при вызове метода startExecution() объекта obj, он будет оперировать только своими локальными данными и не сможет изменить переменную Name, которая находится вне объекта.
Однако, вы можете передать переменную Name в метод startExecution() как параметр и изменить ее значение внутри метода. Вот как можно изменить ваш код для достижения желаемого результата:
using System; namespace ConsoleApplication1 { class Program { public class stateEnterWord { private string word; public void init(ref string input) { word = input; } public void startExecution(ref string input) { input = Console.ReadLine(); } } static void Main(string[] args) { stateEnterWord obj = new stateEnterWord(); string Name = ""; obj.init(ref Name); obj.startExecution(ref Name); Console.WriteLine(Name); } } }
Теперь при вызове метода startExecution() объекта obj с передачей переменной Name по ссылке, значение переменной Name будет изменено внутри метода и при выводе на экран будет отображаться введенное значение пользователем.
К сожалению, в C# нельзя создать ссылку на переменную вне объекта внутри объекта класса. В данном случае при вызове метода startExecution() объекта obj, он будет оперировать только своими локальными данными и не сможет изменить переменную Name, которая находится вне объекта.
Однако, вы можете передать переменную Name в метод startExecution() как параметр и изменить ее значение внутри метода. Вот как можно изменить ваш код для достижения желаемого результата:
using System;namespace ConsoleApplication1
{
class Program
{
public class stateEnterWord
{
private string word;
public void init(ref string input)
{
word = input;
}
public void startExecution(ref string input)
{
input = Console.ReadLine();
}
}
static void Main(string[] args)
{
stateEnterWord obj = new stateEnterWord();
string Name = "";
obj.init(ref Name);
obj.startExecution(ref Name);
Console.WriteLine(Name);
}
}
}
Теперь при вызове метода startExecution() объекта obj с передачей переменной Name по ссылке, значение переменной Name будет изменено внутри метода и при выводе на экран будет отображаться введенное значение пользователем.