Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

gates22

[C#] Metody obok Main?

Rekomendowane odpowiedzi

Witam. Ostatnio przerabiam sobie C# :) Znając C++ na niezłym poziomie nauka tego języka jest niesamowicie łatwa, a także przyjemna :) Sam język jest bardzo fajny, przyjemnie się w nim pisze... Ale męczy mnie jedna kwestia :D

W C++ piszę normalnie funkcje, np

 

#include <iostream>

using namespace std;

int dodaj(int a, int b)
{
   return a+b;
}

int main()
{
   cout << dodaj(5, 5);
}

 

I jest to "obok funkcji main".

Czy w C# można robić to samo? Tzn

 

using System;

class Glowna
{
  public int dodaj(int a, int b)
  {
     return a+b;
  } 

  public static void Main()
  {
     Console.WriteLine(dodaj(5, 5));
  }
}

?

Czy klasa, w której jest Main jest tylko i wyłącznie dla tej metody? I wtedy trzeba kolejną klasę (mi się wydaje że właśnie tak, skoro jest to język całkowicie obiektowy, oparty na klasach)?

 

using System;

class Pomocnicza
{
  public int dodaj(int a, int b)
  {
     return a+b;
  }
}

class Glowna
{   
  public static void Main()
  {
     Pomocnicza a = new Pomocnicza();       
     Console.WriteLine(a.dodaj(5, 5));
  }
}

Więc, jak to jest?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pierwszy przykład, który podałeś w C# nawet nie zadziała, bo musisz zadeklarować metodę jako statyczną jeśli chcesz tak zrobić, lub utworzyć obiekt klasy Glowna.

Przy małych programikach, składających się z -nastu metod nie ma raczej sensu rozbijać się na 10 obiektów, bo tylko zaciemnisz kod. Przy aplikacjach okienkowych zazwyczaj robi się metodę Main() w oddzielnej klasie i tam tylko tworzy główny obiekt np z ramką. Też za długo w C# nie siedzę, ale to praktycznie to samo co Java i tam się tak to praktykuje.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pierwszy przykład, który podałeś w C# nawet nie zadziała, bo musisz zadeklarować metodę jako statyczną jeśli chcesz tak zrobić, lub utworzyć obiekt klasy Glowna.

Przy małych programikach, składających się z -nastu metod nie ma raczej sensu rozbijać się na 10 obiektów, bo tylko zaciemnisz kod. Przy aplikacjach okienkowych zazwyczaj robi się metodę Main() w oddzielnej klasie i tam tylko tworzy główny obiekt np z ramką. Też za długo w C# nie siedzę, ale to praktycznie to samo co Java i tam się tak to praktykuje.

Rozumiem :)

Jasne, że nie 10 osobnych klas, ale np ta główna, i ta druga, z tymi metodami, to już może być? Tzn mam na myśli, jedną klasę z Main, i jedną klasę z kilkoma innymi metodami do użytku (oczywiście klasę z metodami powiązanymi ze sobą, przykładowo klasę OpAryt z metodami dodaj, odejmij itp.), tak chyba najlepiej, nie?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Poczytaj sobie o programowaniu obiektowym i będziesz wiedział, jak będzie najlepiej. Nie traktuj klas jako pojemników na metody, programowanie obiektowe jest czymś znacznie ponad to.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Na tym polega programowanie obiektowe.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Poczytaj sobie o programowaniu obiektowym[...]

Uwierz mi, wiem czym jest programowanie obiektowe :E Zresztą tak się składa, że klasy to są "pojemniki na metody" :E Oczywiście nie tylko, ale głównie xD Ja po prostu chciałem wiedzieć, jak się "praktykuje" w C# ;) Ale poczytałem trochę w internecie, i już wiem wszystko, co chciałem. Temat do zamknięcia :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

"Ale poczytałem trochę w internecie, i już wiem wszystko, co chciałem. Temat do zamknięcia"

Trzeba bylo od tego zaczac ....

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

"Ale poczytałem trochę w internecie, i już wiem wszystko, co chciałem. Temat do zamknięcia"

Trzeba bylo od tego zaczac ....

Specjalnie dla ciebie rozwinę swoją wcześniejszą wypowiedź...

Otóż zanim napisałem na forum, szukałem informacji na ten temat... Jednak gdy temat został już założony i miał pierwszą odpowiedź (oczywiście nie przestawałem szukać) natknąłem się na informację o tym, czego chciałem się dowiedzieć.

To tyle ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...