Pyt. Odnośnie metod i klas w C#

0

Witam wszystkich na forum, z góry przepraszam za banalne problemy ale nie mogłem na nie znaleźć odpowiedzi. Otóż wczoraj natknąłem się na dwa problemy.

  1. Stworzyłem sobie prosty program do obliczania modułu i tg(fi) liczb zespolonych. Program składał się z dwóch klas : w pierwszej klasie miałem tylko metody zajmujące się obliczeniami, druga klasa form miała tylko czytać wartości z TextBoxów i wyświetlać wyniki w innym TextBoxie po naciśnięciu przycisku. I tutaj zaczął się mój problem. Bo nie wiem jak pobrać wyników z pierwszej klasy i wyświetlić je w drugiej. Pewnie jest to straszny banał ale na prawdę nie mogę sobie z tym poradzić :/

w klasie form tworze oczywiście obiekty z klasy 1 przez
klasa1 LiczbyZes = new klasa1();

jednak później odwołując się do tego przez LiczbyZes.ObliczModul() . Metoda Oblicz moduł zwraca wynik i chciałbym wiedzieć jak mogę go odczytać w innej klasie?

  1. jak dokładnie działa słówko return w metodach? Mam dla przykładu metodę

Public int ObliczSume(int suma) {
suma = 2+ 2;
return suma;
}

jak mogę teraz zmienną "suma" wykorzystać w innej metodzie?

Mam nadzieję, że określiłem dość logicznie swój problem. Wiem, że to o co pytam to podstawy, ale na prawdę nie mogę sobie z tym poradzić. Z góry dzięki za odpowiedź.

0

poza tą metodą ta zmienna nie istnieje, ale kopia tej wartości zwracana jest przy wowłaniu tej funkcji:
public void InnaMetoda() {
int wartosc = ObliczSume(123131231 /tutaj wychodzi blad projektowy, ze wzgledu na fakt ze ten parametr jest niepotrzebny/);
}

ta metoda co napisałeś powinna wyglądać tak:
public int ObliczSume() {
return 2+2;
}

lub tak:
public int ObliczSume() {
int suma = 2+2;
return suma;
}

lub tak:
public int ObliczSume(int x) {
return x+x;
}
...

0

Popatrz tutaj na pierwszy przykład: http://msdn.microsoft.com/en-us/library/aa288467.aspx
Tak to może wyglądać.
Dopisz do klasy Complex metody zwracające moduł oraz argument i gotowe:

public struct LiczbaZespolona
{
    public double re;
    public double im;

    public LiczbaZespolona(double re, double im) { this.re = re; this.im = im; }

    public double Modul() { return Math.Sqrt(this.re * this.re + this.im * this.im); }

    // ...
}

//...
LiczbaZespolona liczba = new LiczbaZespolona(5, 10);
double modul = liczba.Modul(); // liczymy modul liczby
0

Dzięki:) Czyli jeśli w deklaracji metody w () wpisuje parametr wejściowy, tak? np.

Public int suma(int liczba) {
int suma = liczba + liczba;
return suma; }

A jeśli chciałbym ten wynik później wrzucić do textboxa to muszę to zrobić w ten sposób ?

Class1 klasa = new Class1();
int suma = klasa.Suma();

TextBox1.Text = Convert.ToString(suma);

czy mogę zrobić to tak: TextBox1.Text(klasa.Suma()); ?

0
kryszy napisał(a):

czy mogę zrobić to tak: TextBox1.Text(klasa.Suma()); ?

Poza tym, że to się nie skompiluje, to możesz.
Możesz nawet tak: this.TextBox1.Text = new LiczbaZespolona(2, 2).Modul.ToString();, (o ile moduł jest właściwością, a raczej powinien być). Możliwości jest wiele.

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