Загрузка...

Как получить доступ к переменной из метода в другом классе в C#?

Тема в разделе C# создана пользователем H4RD3R 19 мар 2021. (поднята 19 мар 2021) 318 просмотров

  1. H4RD3R
    H4RD3R Автор темы 19 мар 2021 267 11 апр 2019
    Не получается изменить значение переменной money. Пробовал делать её public, но тогда ломается половина кода. Как правильно получить к ней доступ и изменить её?

    Код
    using System;

    namespace TestProgram
    {
    public class Bank
    {
    Program player = new Program();
    public void giveMoney()
    {
    player.money += 50;
    }
    }
    public class Program
    {
    public static void Main()
    {
    int money = 0;

    Bank bank = new Bank();

    bank.giveMoney();
    Console.WriteLine(money);
    Console.ReadLine();
    }
    }
    }
    Ошибка происходит на строчке
    Код
     
    player.money += 50;
    }
    тк это путь к классу, а надо ещё и в метод залезть. Как не знаю
     
    19 мар 2021 Изменено
  2. Digitall
    Digitall 19 мар 2021 151 8 сен 2018
    Никак
     
    1. Посмотреть предыдущие комментарии (7)
    2. Digitall
      H4RD3R, Ну а вообще, если банк - это нпс, то у него не должно быть доступа к player, а у player должен быть свой класс. Program - это твоя программа, не нужно делать её инстанс. И лучше, если у банка не будет доступа к деньгам
    3. H4RD3R Автор темы
    4. Digitall
      H4RD3R, public static int money = 0
  3. Кумиров
  4. PeaceDeath
    Оформи код через
    Код
    [CODE]
    в теме и объясни конкретно где проблема
    --- Сообщение объединено с предыдущим 19 мар 2021
    А что ты пытаешься сделать вообще?
     
    1. H4RD3R Автор темы
      @PeaceDeath, была большая программа, я её сократил оставив только проблемную часть. Из кода видно что я хочу получить деньги (money) от другого класса. Надеюсь понятно объяснил
  5. PeaceDeath
    Логичнее всего запихнуть переменную money в класс Bank и сделать ей публичный геттер. Потом просто выводишь через
    Код
    Console.WriteLine(bank.getMoney())
     
    1. H4RD3R Автор темы
      @PeaceDeath, немного не так должно работать, банк по сути является NPC, который передаёт мне деньги, он не должен их хранить. Деньги должны храниться у меня.
  6. Ljopv91rdewr
    Ljopv91rdewr 19 мар 2021 443 4 май 2019
    Код
    namespace TestProgram
    {
    public class Bank
    {
    Program player = new Program();
    public void giveMoney()
    {
    player.money += 50;
    }
    }
    public class Program
    {
    public int money = 0;

    public static void Main()
    {
    Bank bank = new Bank();

    bank.giveMoney();
    Console.WriteLine(money);
    Console.ReadLine();
    }
    }
    }
     
    1. Посмотреть предыдущие комментарии (1)
    2. Ljopv91rdewr
      H4RD3R, зачем ты вызываешь в классе класс, который вызывает этот же класс ?:BrainCosmic:
    3. H4RD3R Автор темы
      Ljopv91rdewr, я скинул лишь часть кода, поэтому не особо понятно зачем это всё надо
    4. Ljopv91rdewr
      H4RD3R, у тебя войд в статике, поэтому не доступа, а класс не статик
Top
Загрузка...