some_ONE

Niby ciekawostka, ale taka nie za ciekawa :P

Visual Code

@some_ONE: ale na pewno mało znana w sumie dobrze ;)

Marcin.Miga

Już w VB6 mozna było to zrobić :)

somekind

Ja to bym w sumie wolał, żeby pozostała nieznana tym, którzy tego faktycznie nie znali (o ile są tacy). Bo tak ogólnie, to ten pomysł to rak i malaria w jednym.

Visual Code

@somekind: czy to znaczy, że najrozsądniej będzie usunąć ten wpis?

somekind

Ja nie mam nic przeciwko temu, że ten wpis istnieje.

mad_penguin

IMO jeśli CLR pozwala na obiekty z takimi nazwami, to dobrze jest, że C# pozwala na ich stworzenie, już abstrahując od użyteczności tego

somekind

No użyteczność jest genialna - można o to pytać na rozmowach kwalifikacyjnych. :P

Afish

To jest ogromnie użyteczne przy łączeniu C# z innymi językami, po to też ten ficzer jest.

somekind

A jakiś praktyczny przykład?

Afish

Struktura w innym języku, która ma pole o nazwie class, chcesz ją zmapować w C#, musisz zachować zgodność nazw pól.

somekind

Często się to zdarza?

Afish

Na szczęście twórcy C# przewidzieli, że raz na jakiś czas ktoś ma taką potrzebę (szczególnie przy P/Invoke), mimo że przy klepaniu korpoformatek nie jest to częste.

somekind

Nie tylko przy klepaniu formatek, ale i w ogóle przy pracy w samym C#, czyli tym, czym się pewnie zajmuje zdecydowana większość programistów tego języka. Z tych, którzy piszą jakiegoś interopa pewnie niewielu trafiło na taki przypadek, że gdzieś było jakieś pole nazwane słowem kluczowym. Dobrze, że taki ficzer jest, no ale w praktyce częściej jest używany na rozmowach kwalifikacyjnych niż w projektach. No chyba, że ktoś tego używa w czysto siszarpowych projektach, ale to chyba niezbyt dobrze świadczy.

Afish

Czyli z jednej strony ten pomysł to rak i malaria w jednym, a z drugiej Dobrze, że taki ficzer jest? Ja się cieszę, że taka możliwość jest, bo raz zaoszczędziłem dzięki temu masę pracy, ponadto zazwyczaj nie krytykuję elementów języka, których nie używam. No chyba, że ktoś tego używa w czysto siszarpowych projektach, ale to chyba niezbyt dobrze świadczy — celem twórców C# było umożliwienie współpracy z C++ i innymi technologiami natywnymi, więc moim zdaniem jest wręcz przeciwnie.

somekind

Ficzer w języku (jeśli używany ze zrozumieniem) nie jest problemem. Słowa rak i malaria dotyczyło używania tego na siłę w kodzie, tak jak w przykładzie.

Visual Code

@somekind Kod nie miał za zadanie pokazać przykładowe użycie, tylko efekt zastosowania tego ficzera. Według mnie spec @Afish ma tutaj 100% racji. Myślę, że wypowiedzi w stylu ktoś tego używa w czysto siszarpowych projektach, ale to chyba niezbyt dobrze świadczy wywodzi się z niezrozumienia intencji twórców języka c#.