Tworzenie klasy i modyfikacja wartości

0

Witam, niniejszy kod:

namespace ConsoleApplication1
{
    class Program
    {
        class konto
        {
            public int pin;
            public double saldo;
            public int SprPin()
            {
                Console.WriteLine("Podaj pin:");
                int x = Convert.ToInt32(Console.ReadLine());
                if (x == pin)
                {
                    return 1;
                }
                else
                    return 0;
            }
            public int ZmienPin(int pin)
            {
                pin = Convert.ToInt32(Console.ReadLine());
                return pin;
            }
            public double wyplac()
            {
                double minus = Convert.ToDouble(Console.ReadLine());
                saldo = saldo - minus;
                return saldo;
            }
            public void wyswietl()
            {
                Console.WriteLine("Twoje informacje o koncie. Saldo:  {0}, Pin: {1}", saldo, pin);
            }

            static void Main(string[] args)
            {
                konto DamianKonto = new konto();
                DamianKonto.SprPin();
                DamianKonto.wyplac();
                DamianKonto.wyswietl();
                Console.ReadKey();
            }
        }
    }
}
 

Jest to prosty program imitujący konto bankowe. Pytanie moje brzmi jak modyfikować swobodnie wartość "pin" (public int pin - zdefiniowaną w klasie")? Na obecną chwile pokazuje mi "Program.konto.pin' is never assigned to, and will always have its default value 0" - chociaż użyłem w metodzie która powinna zmienić wartość "pin":

{
                pin = Convert.ToInt32(Console.ReadLine());
                return pin;
            }
 

dzięki:) Pozdrawiam

1

1) Nigdzie nie przypisujesz wartości do składowej pin.
nie wywołujesz metody.
2) Na cholerę ta klasa jest zagnieżdżona?
3) Metoda ZmienPin(), nigdy nie jest wywoływana.

Wniosek: wszystko działa dokładnie tak, jak napisano w kodzie.

@only

namespace ConsoleApplication33
{

    class konto
    {
        public int pin;
        public double saldo;
        public int SprPin()
        {
            Console.WriteLine("Podaj pin:");
            int x = int.Parse(Console.ReadLine());
            if (x == pin)
            {
                return 1;
            }
            else
                return 0;
        }
        public int ZmienPin()
        {
            this.pin = int.Parse(Console.ReadLine());
            return pin;
        }
        public double wyplac()
        {
            double minus = Convert.ToDouble(Console.ReadLine());
            saldo = saldo - minus;
            return saldo;
        }
        public void wyswietl()
        {
            Console.WriteLine("Twoje informacje o koncie. Saldo:  {0}, Pin: {1}", saldo, pin);
        }
    }
    class Program
    {

            static void Main(string[] args)
            {
                konto DamianKonto = new konto();
                DamianKonto.ZmienPin();
                DamianKonto.SprPin();
                DamianKonto.wyplac();
                DamianKonto.wyswietl();
                Console.ReadKey();
            }
        }
    
1

Pin to raczej utworzylbym w konstruktorze, bo kazde konto na wejscie powinno miec pin. poza tym te wszystkie metody zamiast wywolywac czytanie z konsoli, powinny przyjmowac te dane jako parametr, pola private, ale to kolega juz wspomnial i metoda zmienPin zmienia pin wiec powinna byc void lub co najwyzej bool, bo to nie zmienIzwrocPIn:)

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