Wywołanie obiektu w innej klasie

0

Cześć mam problem z wywołaniem obiektu

namespace zad
{
    class kuchnia
    {
        lodowka beko = new lodowka();
        
        beko.Test(); // to nie działa

        class lodowka
        {
            void Test()
            {
                Console.WriteLine("Test");
            }
        }
    }
}

obiekt tworzy się pomyślnie. W jaki sposób teraz moge wywołać metode Test?

4

Nie działa bo próbujesz wywołać metode w ciele klasy. Metode możesz wołać z innej metody czy tez konstuktora. Np:

class Program
    {
        static void Main(string[] args)
        {
            var lodowka = new lodowka();
            lodowka.Test();
        }

        class lodowka
        {
            public void Test()
            {
                Console.WriteLine("Test");
            }
        }
    }
1

Nie możesz wywołać kodu w klasie, w klasie możesz tylko zdefiniować obiekty. Po to są metody żeby je używac

    class Program
    {
        static void Main(string[] args)
        {
            lodowka beko = new lodowka();
            beko.Test(); // to nie działa
        }

        static class lodowka
        {
            public void Test()
            {
                Console.WriteLine("Test");
            }
        }
    }

Jest to najprostsze wykonanie tego co chcesz osiągnąć :)

0

chyba nie zrozumiałeś o co mi chodziło, ale też w sumie źle to wytłumaczyłem. Chce stworzyć klase która ma w sobie klase która to z kolei zawiera metody. Teraz pytanie. Jak wywołać te metody:

Program.cs

namespace zad
{
    class Program
    {
        static void Main(string[] args)
        {
              TU JE CHCE WYWOLAC OBIEKT lodowka
        }
    }
}

kuchnia.cs

namespace zad
{
    class kuchnia
    {
 
        class lodowka
        {
            public void Test()
            {
                Console.WriteLine("Test");
            }
        }
    }
}
0

chyba nie zrozumiałeś o co mi chodziło

To Ty nie zrozumiales...

namespace zad
{
    class Program
    {
        static void Main(string[] args)
        {
              // TU JE CHCE WYWOLAC OBIEKT lodowka
              // to sobie wywolalaj...
              var lod = new lodowka();
              lod.Test();
        }
    }
}
4

beko.Test() nie działa, ponieważ metoda Test w klasie lodowka nie jest publiczna. Można ją wywołać tylko z wewnątrz klasy lodowka. Poczytaj o private , protected itp.

namespace zad
{
    class kuchnia
    {
        lodowka beko = new lodowka();

        beko.Test(); // to nie działa

        class lodowka
        {
            void Test() // Bo tego nie widać poza klasą lodowka
            {
                Console.WriteLine("Test");
            }
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1