Wlodek55 napisał(a)
Somekind - wydaje mi się że koniecznie chcesz wejść w dyskusję o wyższości jednego języka nad drugim.
Jeśli chodzi o C++ to ciężko byłoby mówić o jakiejkolwiek wyższości nad czymkolwiek pod względem składni.
Ograniczanie możliwości języka tylko dlatego żeby ktoś sobie ‘nie zrobił krzywdy’ nie jest dla mnie zbyt przekonujące.
Po prostu te "ograniczenia" w C# pozwalają na uniknięcie pewnych prostych błędów wynikających z roztargnienia czy nieuwagi, które w C++ przechodzą. Wiadomo, że błędny kod można napisać w każdym języku, po prostu w niektórych o to trudniej.
Nikt sobie krzywdy nie zrobi, tu o czas pracy chodzi. A czas to pieniądz.
I "ograniczanie" jest chyba złym słowem w tym przypadku. C# to nie jest nowa wersja C++ bez niektórych jego możliwości. To zupełnie inny język i nie można oczekiwać, że będzie się zachowywał jak jakiś inny język. Równie dobrze można powiedzieć, że jest ograniczony względem Pascala, bo nie ma begin i end - to bez sensu.
Moim zdaniem w sprzedaży powinny być noże ostre i tępe, a klient powinien mieć po prostu możliwość wyboru.
No i masz możliwość. Nie musisz chyba pisać w C#. :)
Jeśli chodzi o do modyfikację składni to chyba mnie nie rozumiesz.
Ja rozumiem co chcesz zrobić.
IMHO składnia istnieje na poziomie kodu źródłowego. A Twój plik z "then" nie będzie już plikiem w języku C#, bo nie będzie się kompilował standardowym kompilatorem tego języka. Będzie miał zmienioną składnię. A przeparsowanie go i wysłanie do kompilatora już bez tego słowa, to inna rzecz.
Co do nadmiernie rozdmuchanej składni to moim zdaniem jest to już naprawdę kwestia gustu (czyli poza merytoryczną dyskusją). Dla mnie stosowanie then oprócz wartości wizualnej ma jeszcze tę zaletę że zmniejsza ilość popełnianych błędów.
Rozumiem Twoje przyzwyczajenie. :) Ale uwaga o rozdmuchaniu składni była o VB, nie o "then". ;)
Ja po prostu chciałbym mieć taką możliwość w moim prywatnym komputerze nie publikując nigdzie na zewnątrz takiego then’owego kodu.
Więc albo zrób to, co zaproponował Rev.pl, albo napisz swój preprocesor, który obsłuży Twoje #define, a potem wyśle kod do csc.exe. I kompiluj wywołując z wiersza poleceń, a nie z Visual Studio. Bo i tak nie ma sensu używać VS w pliku z niepoprawnym składniowo kodzie z "then", gdyż chociażby Intellisense zwariuje.
A ja postaram się jeszcze coś przez weekend wykombinować, jak wpadnę na jakiś pomysł, to dam znać. :)