Как создать ссылку на строку внутри объекта класса, которая указывает на переменную вне объекта? Добрый вечер.
Я пытаюсь хранить внутри объекта ссылку на переменную (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);
}
}
}

21 Авг 2019 в 07:02
251 +1
0
Ответы
1

К сожалению, в 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 будет изменено внутри метода и при выводе на экран будет отображаться введенное значение пользователем.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир