[ Laki009 @ 28.01.2015. 12:06 ] @
Zdravo,

treba mi pomoć sa instaciranjem klase i definisanjem konstruktora u C# jeziku.

Ovo je kod koji sam uradio koristeći se statičkom metodom, a koji sada treba da prepravim upotrebom instance klase i zadatim konstruktorom:

Code (csharp):

namespace CalculatorTest
{
    class Calculator
    {
       public static string WriteNumber(int zbir)
        {
            zbir = 53 + 28;
            return zbir.ToString();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            string n = Calculator.WriteNumber(53 + 28);
            Console.WriteLine(n);

            Console.Read();
        }
    }
}
 


Izlaz u komandnoj liniji je: 81.

Isti problem sada treba da uradim instaciranjem klase i upotrebom sledeceg konstruktora:

Code (csharp):

public Calculator(int operand1, int operand2)
        {
            this.operand1 = operand1;
            this.operand2 = operand2;
        }
 


U Main metodi treba kreirati instancu klase Calculator i proslijediti konstruktoru neke proizvoljne vrijednosti.
Pozvati metodu WriteNumber tako da se dobije isti rezultat kao i u gornjem kodu sa statčkom metodom.

Da li neko može da pomogne?

Hvala!


[Ovu poruku je menjao mmix dana 28.01.2015. u 14:59 GMT+1]
[ Mikelly @ 28.01.2015. 15:47 ] @
Code:

Calculator calc = new Calculator(53,28);
string n = Calculator.WriteNumber(calc.operand1 + calc.operand2);
Console.WriteLine(n);


Primijeti da ovo radi samo u slucaju da su argumenti konstruktora 53 i 28. U svakom drugom slucaju ces dobit neispravan rezultat, tj. rezultat ti je uvijek 81, jer si ga zakucao u kodu. Mozda bi trebao da obrises liniju:

Code:

zbir = 53 + 28;


A mozda je to i caka :)

Takodje ovo radi samo pod uslovom da su operand1 i operand2 public
[ Laki009 @ 28.01.2015. 16:42 ] @
Ovo radi i hvala puno!

Imam jedno pitanje. U istoj klasi (Calculator) sam dodao još jedan metod (WriteText) koji treba da ispiše string u konzoli uz rezultat sabiranja (takodje uz upotrebu instance klase). Tu se pojavljuje jedna greška u Main metodi (linija sa greškom je označena komentarom).

Ovo je sada čitav kod:


Code:

namespace CalculatorTest
{
    class Calculator
    {
        public int operand1;
        public int operand2;

        public Calculator(int operand1, int operand2)
        {
            this.operand1 = operand1;
            this.operand2 = operand2;
        }
        public string WriteText(string s)
        {
            return s;
        }
        public string WriteNumber(int zbir)
        {
            zbir = 53 + 28;
            return zbir.ToString();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Calculator calc = new Calculator(53, 28);
            string n = calc.WriteNumber(calc.operand1 + calc.operand2);
            Console.WriteLine(n);
            
            Calculator poruka = new Calculator(); //Greška je u ovoj liniji
            string s = poruka.WriteText("Hello World");
            Console.WriteLine(s);

            Console.Read();
        }
    }
}


[Ovu poruku je menjao Laki009 dana 29.01.2015. u 11:31 GMT+1]

[Ovu poruku je menjao Laki009 dana 29.01.2015. u 11:34 GMT+1]
[ Laki009 @ 29.01.2015. 10:30 ] @
Problem je riješen dodavanjem još jednog konstruktora:

Code:

public Calculator(string tekst)
        {
            this.tekst = tekst;
        }
[ miraan @ 16.12.2015. 16:59 ] @
izvini ja ucim samostalno programiranje pa otkucavanjem ovog konstrutora mi idalje daje grešku pa ako može mala pomoć gdije da ubacim ovaj konstrutor