[C#] problem

ksenonlogin1

Nowicjusz
Dołączył
19 Styczeń 2011
Posty
1
Punkty reakcji
0
jak to jest z tymi klasami w C#

chodzi mi oto jak pobierać dane z Class np. mam zwykłe zadanie liczące silnie, liczbę którą podaje w textBox, i po naciśnięciu Button-a chce by zadanie zwracało mi silnie ale w listBox, ogólnie łatwe ale jak to zrobić by wszystko było liczone w klasie a nie wewnątrz Form-a.

Tak wygląda zadanie silni ale wykonywane w Form1:

Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        
        private int silnia_for(int wartosc)
        {
         int silnia=1;
         for(int i=2;i<=wartosc;i++) 
         silnia = silnia *i;
         return silnia;
        }

       

        private void button1_Click_1(object sender, EventArgs e)
        {
            int do_silni;
            do_silni = int.Parse(textBox1.Text);
            listBox1.Items.Add(silnia_for(do_silni));

        }
    }
}

a jest mi potrzebne identyczne rozwiązanie na klasach, w internecie szukałem ale są to informacje opisujące same klasy a nic niema nawet napisane jak pobierać dane z las i mam problem :(



Proszę o pomoc
 

Laurearel

Nowicjusz
Dołączył
23 Marzec 2010
Posty
472
Punkty reakcji
22
Lepiej zajmij się jakąś normalną technologią (np. Javą), a nie tym badziewiem
 

Laurearel

Nowicjusz
Dołączył
23 Marzec 2010
Posty
472
Punkty reakcji
22
Tego "badziewia" uczą na niektórych uczelniach...
Jedno do drugiego pasuje, beznadziejne uczelnie to i beznadziejne rzeczy na nich nauczane ; )


Temat został podzielony. Jeżeli chcecie dyskutować o tym który język wybrać zapraszam tutaj. W obecnym temacie proszę wypowiadać się tylko na temat problemu autora. // Gressil
 

ponury_murzyn

Przyjaźnie nastawiony do świata 22-latek ;)
Dołączył
10 Lipiec 2005
Posty
4 235
Punkty reakcji
53
Wiek
34
Miasto
Wrocław
w sumie faktycznie pokłócilismy się o wyższości jednej technologii nad drugą, a nikt nie odpowiedział na twoje pytanie. Tak więc ja postaram się to zrobić, ale ... o co ci chodzi tak naprawdę mówiąc "na klasach". Po części tu wykorzystujesz klasy (do słownie "po części" - używasz słowa kluczowego partial) - chcesz mieć osobną klasę, która liczy silnię? to stwórz własną klasę "Matematyka" i jedziesz - w niej zrób metodę "silnia" (najłatwiej byłoby zrobić statyczną, żebyś nie musiał tworzyć obiektu matematyka). bo twoja funkcja silnia_for(int) w ogole nie pasuje do klasy "Form". rozumiesz?
 

Greeg

Wredny ch* ;)
Dołączył
9 Lipiec 2008
Posty
3 521
Punkty reakcji
313
Miasto
Kobieta :)
Nie znam do końca składni C#, a właściwie to w ogóle jej nie znam, ale na moje oko to po prostu chciałbyś wyodrębnić ten mechanizm liczacy silnie tak, abyś np. mógł go użyć wielokrotnie, np. w tym Form1 co masz, ale równie dobrze w jakimś Form20

Ja bym zrobił coś takiego (składnia może być zła)

Kod:
public static class MathHelper {

   public static int doFactorial(int value) {
      // no i tu twoj kod
      int factorial=1;
      for(int i=2;i<=value;i++) 
      factorial = factorial * i;
      return factorial;
   }
}


i potem tylko w tym Form1 zamiast tego:

listBox1.Items.Add(silnia_for(do_silni));

byś zrobił

listBox1.Items.Add(MathHelper.doFactorial(do_silni));
 
K

konrad1221

Guest
do klas polecam "Od zera do gier kodera" ladnie to tlumaczy jednak wyobraznia jest wymagana
PS: Java to najwiekszy badziew...C rox!
 
Do góry