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.

Barbarian_pol

[C#] procedury?

Rekomendowane odpowiedzi

Zaczynam poznawać C# i postanowiłem przenieść na niego jeden fajny programik który napisałem kiedyś w pascalu. Operacje na plikach, rekordy i inne bzdety już zakumałem. Ale mam problem z procedurami. W pascalu to było znaczne ułatwienie które skracało znacznie długość kodu - jeżeli pewne działania się powtarzają w różnych częściach programu, to wrzucam je do procedury i później tylko wywołuję jej nazwę - tak to było w pascalu. Czy jest jakiś odpowiednik tego w C#?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
W pascalu to było znaczne ułatwienie które skracało znacznie długość kodu - jeżeli pewne działania się powtarzają w różnych częściach programu, to wrzucam je do procedury i później tylko wywołuję jej nazwę - tak to było w pascalu. Czy jest jakiś odpowiednik tego w C#?

Na przykład statyczna metoda klasy zaprojektowanej w oparciu o wzorzec Singleton.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Na przykład statyczna metoda klasy zaprojektowanej w oparciu o wzorzec Singleton.

 

A co ma do tego singleton?

 

W językach C nie ma czegoś takiego jak procedura. Jest funkcja , która nic nie zwraca czyli zwraca void.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
A co ma do tego singleton?

Patrz sformułowanie "na przykład".

W językach C nie ma czegoś takiego jak procedura. Jest funkcja , która nic nie zwraca czyli zwraca void.

Naprawdę? Co zwróci

void if_unsure_check_assembly_code(int arg)
{
 return arg;
}

? :hmm:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W c# void nic nie zwraca. Jak chcesz cos zwrocic to musisz podac typ. Jak chcesz żeby zwrocilo (ehehehe), cos innego to musisz jawnie rzutowac.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
W c# void nic nie zwraca. Jak chcesz cos zwrocic to musisz podac typ. Jak chcesz żeby zwrocilo (ehehehe), cos innego to musisz jawnie rzutowac.
W językach C1 nie ma czegoś takiego jak procedura. Jest funkcja2 , która nic nie zwraca czyli zwraca void.

1. C != C#

2. funkcja != metoda

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

w jezykach C.

No czyli C, C++, D, C# itd.

mozemy tak odbijac pileczke jeszcze dlugo :P.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
w jezykach C.

No czyli C, C++, D, C# itd.

mozemy tak odbijac pileczke jeszcze dlugo :P.

Podanie tej piłeczki wyszło z Twojej strony w postaci postu #5, który nie wniósł nic do tematu. Poza tym wymienione przez Ciebie języki mają niewiele wspólnego, oprócz podobnej syntaktyki. Dlaczego nie wrzuciłeś tam języka Java? Czy reguła, którą zawarłeś w poście #5 nie znajduje zastosowania w przypadku tego języka?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

public <zwracany_typ> nazwa_funkcji(<typ argumentu1> <nazwa argumentu1>, (...))
{
/*... */
return zmienna typu zwracany_typ; //Nie dotyczy jezeli w zwracany_typ jest void
}

 

Wiecej przeczytasz w byle tutorialu o C#

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Podanie tej piłeczki wyszło z Twojej strony w postaci postu #5, który nie wniósł nic do tematu. Poza tym wymienione przez Ciebie języki mają niewiele wspólnego, oprócz podobnej syntaktyki. Dlaczego nie wrzuciłeś tam języka Java? Czy reguła, którą zawarłeś w poście #5 nie znajduje zastosowania w przypadku tego języka?

NIe znam Javy.

Ale najprwodpodbniej, tez jest silnie typowana i nie mozna sobie w void pisac return <int>,

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
NIe znam Javy.

Ale najprwodpodbniej, tez jest silnie typowana i nie mozna sobie w void pisac return <int>,

Ale w C i C++ już możesz. Stwierdzenie macque z postu #3 nie jest prawdziwe.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
public <zwracany_typ> nazwa_funkcji(<typ argumentu1> <nazwa argumentu1>, (...))
{
/*... */
}

 

Wiecej przeczytasz w byle tutorialu o C#

rozumiem że ten public ma być w obrębie innej klasy, tak jak tu: http://www.centrumxp.pl/dotNet/798,1,20_Me...raz_metody.aspx

jak w takim razie zadeklarować zmienne np. macierz, aby obowiązywała zarówno w main, jak i w pomocniczym public? przekazywanie argumentów mi nie wystarczy, operuję i tu i tu na 1 konkretnej macierzy

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

public to modyfikator widocznosci. Dzieki temu mozesz sie do danej metody odwolac z kazdego poziomu. Np z main mozesz zrobic

klasa_pomocnicza.metoda(); Ale gdy metoda() ma modyfikator private to powyzsze nie bedzie juz dzialac. Ale za to bedziesz mogl sie do niej odwolac z wnetrza klasy klasa_pomocnicza po prostu uzywajac metoda();

 

A jak chcesz operowac na jednej zmiennej w kilku miejscach naraz to

 

class main
{
int[,] macierz1 = new int[10,10];
public main()
{
klasa_pomocnicza pomoc = new klasa_pomocnicza(macierz1);

}
/* ... */
}

class klasa_pomocnicza
{
int [,] macierz2;
public void klasa_pomocnicza(ref int[,] matrix)
{
macierz = matrix;
}
/* z wnetrza tej klasy masz dostep do macierz2. Kazda operacja na macierz2 bedzie automatycznie zmieniala macierz1 */
}

 

Kod powinien byc poprawny, aczkolwiek nie sprawdzalem.

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ę.

  • Tematy

  • Odpowiedzi

    • Ciekawy filozoficzny post, ja to odbieram inaczej - 9800X3D potrafi być 30% szybszy od 7800X3D i to przyrost w 18 miesięcy. Jeżeli upgrade dokonujesz w tej samych "widełkach" wydajnościowych zmieniajac starsze i5 na nowsze i5 to przyrost potrafi być przez 2 lata mniejszy niż nawet 5% za to energetycznie bywa że jest 30% lepiej, ostatecznie jest to jakaś ewolucja - pamiętaj że rozwój technologii jest iteratywny i polega na małych przyrostach które ostatecznie składają się na coś wielkiego ale ostatecznie masz rację - i7-2600 do dzisiaj może stanowić podstawę użytecznego komputera biurowego, skylake posłuszy pewnie i do 2030 w takich celach. Rasteryzacja w kartach graficznych faktycznie stoi nieco w miejscu, nVidia próbuje zrewolucjonizować rynek vendorlockowymi technikami jak swoje DLSSy, ostatecznie doprowadzi to do stagnacji gdzie bez zamydlonego ekranu nie pogramy w 4K, silniki graficzne też nie rozwijają się w oczekiwanym tempie - unity rozpadło się przez kiepski zarząd, unreal engine 5 to król mikroopóźnień, od zakończenia akceleracji sprzętowej dźwięku w windows vista (okolice 2007) nie było w audio żadnej rewolucji a wręcz ewolucji - id Tech to do dzisiaj jedyny engine który potrafi wyrysować łuk a nie koła z nakładanych trójkątów... Także sygnałów że branża kuleje nigdy nie brakowało - grunt to realizować swoje cele i jak tak jak ja od lat 2000 celujesz w średnią półkę cenową - szukać takich upgrade które faktycznie coś dają no i mieć świadomość że rtx 5090 to będzie 600w potwór z gddr7 i ceną na poziomie 12000 pln, takiej wydajności w kartach do 2000zł nie zobaczymy do 2030r. Pamiętam WOW jakie zrobił na mnie Teoria Chaosu splinter cella (mądrze zaprogramowana gra działająca również na konsolach) Far Cry 1 (był nieziemski na premierę) Crysis wyrywał z butów (8800gtx ledwo dawał radę), wszystko potem to sidegrade z momentami które pokazywały że 200 mln usd budżetu może dać jakościowy tytuł jak Red Dead 2, przez ostatnie 20 lat dobrych gier pctowych nie brakowało ale większość to ciągły sidegrade niepotrzebujący najmocniejszych sprzętów, dobieranie timingów pamięci to zawsze była nieco sztuka dla sztuki
    • Na ITH podobna wolność słowa jak na X/Twitterze. No cóż, trzeba będzie po prostu listę ignorowanych wydłużyć  
    • Tak, ale są związane z usługą udostępnienia platformy z ramienia podmiotu X. W tym wypadku RASP. Jeśli treść, nawet przerobioną na anonimową, przetwarzać zacząłby ktoś inny, nie wiem czy przypadkiem nie potrzeba uzyskać ponownie zgody na przetwarzanie wtórne/dziedziczne. Być może bezpośrednio z RASP, ale już stwierdzono, że nie ma takiej opcji. Głośno myślę jedynie, nie wczytywałem się tak głęboko w przepisy. Ok, ale co jeśli posty zawierają informacje mogące przyczynić się do ustalenia tożsamości piszącego/piszących? Tu już robi się niestety grubiej.    
    • Ja odpowiem bo nie wybieram się na tamto forum. Zależy czy masz boxy, gwarancję i jak szybko chcesz sprzedać ale coś koło 2100.
    • Polecam zapytać na Forum ITHardware.pl tutaj już raczej nikt ci nie odpowie, to forum się zamyka i wszyscy przeszli na ith.   @MuziPL .
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...