Загрузка...

How to access a variable from a method in another class in C#?

Thread in C# created by H4RD3R Mar 19, 2021. (bumped Mar 19, 2021) 314 views

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

    Code
    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();
    }
    }
    }
    Ошибка происходит на строчке
    Code
     
    player.money += 50;
    }
    тк это путь к классу, а надо ещё и в метод залезть. Как не знаю
     
  2. Digitall
    Digitall Mar 19, 2021 151 Sep 8, 2018
    Никак
     
    1. View previous comments (7)
    2. Digitall
      H4RD3R, Ну а вообще, если банк - это нпс, то у него не должно быть доступа к player, а у player должен быть свой класс. Program - это твоя программа, не нужно делать её инстанс. И лучше, если у банка не будет доступа к деньгам
    3. Digitall
      H4RD3R, public static int money = 0
  3. Кумиров
  4. PeaceDeath
    Оформи код через
    Code
    [CODE]
    в теме и объясни конкретно где проблема
    The post was merged to previous Mar 19, 2021
    А что ты пытаешься сделать вообще?
     
    1. H4RD3R Topic starter
      @PeaceDeath, была большая программа, я её сократил оставив только проблемную часть. Из кода видно что я хочу получить деньги (money) от другого класса. Надеюсь понятно объяснил
  5. PeaceDeath
    Логичнее всего запихнуть переменную money в класс Bank и сделать ей публичный геттер. Потом просто выводишь через
    Code
    Console.WriteLine(bank.getMoney())
     
    1. H4RD3R Topic starter
      @PeaceDeath, немного не так должно работать, банк по сути является NPC, который передаёт мне деньги, он не должен их хранить. Деньги должны храниться у меня.
  6. Ljopv91rdewr
    Code
    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. View previous comments (1)
    2. Ljopv91rdewr
      H4RD3R, зачем ты вызываешь в классе класс, который вызывает этот же класс ?:BrainCosmic:
    3. H4RD3R Topic starter
      Ljopv91rdewr, я скинул лишь часть кода, поэтому не особо понятно зачем это всё надо
    4. Ljopv91rdewr
      H4RD3R, у тебя войд в статике, поэтому не доступа, а класс не статик
Top
Loading...