Pytanie początkującego klasy

0

Witam
Dopiero stawiam pierwsze kroki w programowaniu, mój wybór padł na C#, przerabiając każdą lekcję staram się pisać własny kod, jednak napotkałem na problem mianowicie klasa nie zwraca wyników zmiennych, proszę o podpowiedz:

namespace ConsoleApplication10

{

    class newUser{
        public string uzytkownik;
        public string haslo;


        public void user()
        {
            string uzytkownik = Console.ReadLine();
        }
        public void password()
        {
            string haslo = Console.ReadLine();
        }
         public void  wprowadzone()
        {
            Console.WriteLine("Twoje dane to " + uzytkownik + haslo); 
        }
        
    }

W dalszej części kodu po wprowadzeniu danych wywołaniu wprowadzone() , wynik to jedynie "Twoje dane to " .... jeśli dodam Console.WriteLine do np void user , wszystko działa prawidłowo

0

Nie przypisujesz nic do publicznych zmiennych klasy.

W dwóch metodach przypisujesz jedynie wartości do zmiennych lokalnych, które przestają istnieć po wyjściu z metody.

0

a jak powinien wyglądać kod aby zostały w nich zapisane ?
Czy może na tym etapie się w to nie zagłębiać .... ??

1

Pisząc string uzytkownik = Console.ReadLine(); w metodzie deklarujesz nową zmienną o nazwie uzytkwnik i przykrywasz pole klasy o tej samej nazwie.
Do pola możesz odwołać się z metody poprzez uzytkownik albo this.uzytkownik - bez poprzedzania typem.

0

Dziękuje

0

Odświeżam temat , zrobiłem wszystko jak doradził kolega jednak dalej nie dostaje wyników wyświetlania (odwołanie poprzez this też nie daje rezultatu)
Poprawiony kod:

class newUser{
    string uzytkownik;
    string haslo;


    public void user()
    {
        Console.WriteLine(" Nowy Urzytkownik, podaj swoj login: ");
        uzytkownik = Console.ReadLine();
          
    }
    public void password()
    {
        Console.WriteLine(" Podaj haslo ");
        haslo = Console.ReadLine();
         
    }     
    
    public void wyswietlanie()
    {
        Console.WriteLine(uzytkownik + haslo); 
    }
        
}
0

Niemożliwe, pokaż kod w metodzie main. Powinno to wyglądać tak:

public class Program
{
	public static void Main()
	{
		var user = new newUser();
		user.user();
		user.password();
		user.wyswietlanie();
	}
}
0

u mnie to wyglądało tak:

           newUser nowy = new newUser();
            nowy.user();

            newUser haslo = new newUser();
            haslo.password();

            newUser wyswietlanieT = new newUser();
            wyswietlanieT.wyswietlanie(); 

Myślałem, że za każdym razem muszę wywoływać klasę
dam1an z twoja radą działa prawidłowo :)
Możesz mi jeszcze podpowiedzieć, dlaczego jeśli wywoływałem funkcję kilka razy to nie otrzymywałem wyniku ??

0

Każdy obiekt klasy ma własne wartości pól, a Ty stworzyłeś 3 obiekty i każdą wartość wczytywałeś do osobnego, a wyświetlałeś jeszcze z innego, do którego nic nie wczytałeś.

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