Niedawno zacząłem pracować z Unity3D i przede wszystkim pisać skrypty w języku C #. Jak zwykle programuję w Javie, różnice nie są zbyt duże, ale wciąż odwoływałem się do kursu awaryjnego, aby upewnić się, że jestem na dobrej drodze.
Jednak moją największą ciekawością z C # jest to, że używa dużej litery pierwszej nazwy swoich metod (np. Java: getPrime()
C #: GetPrime()
aka: Pascal Case?). Czy jest na to dobry powód? Rozumiem ze strony kursu awaryjnego, że przeczytałem, że najwyraźniej jest to konwencja dla .Net i nie mam możliwości, aby ją kiedykolwiek zmienić, ale jestem ciekawy, dlaczego tak się stało w przeciwieństwie do normalnej (względnej?) Wielbłąda które, powiedzmy, używa Java.
Uwaga: Rozumiem, że języki mają własne konwencje kodowania (wszystkie metody Pythona są pisane małymi literami, co ma zastosowanie również w tym pytaniu), ale nigdy tak naprawdę nie rozumiem, dlaczego nie jest sformalizowane w standard.
źródło
camelCase
iPascalCase
iunderscore_case
i powiedzieć, że jeden z nich jest normalne (nawet stosunkowo normalny), a inni nie. Jak powiedział @dasblinkenlight, jest to arbitralny wybór. Jedyną rzeczą, która sprawia, że myślisz, że konwencja C # jest niezwykła, jest to, że „normalnie programujesz w Javie”, a zatem jesteś przyzwyczajony do arbitralnego wyboru dla Javy.Odpowiedzi:
Konwencje nazewnictwa reprezentują arbitralne wybory ich wydawcy. W samym języku nic nie stoi na przeszkodzie, aby nazwać metody tak, jak robisz to w Javie: dopóki pierwszy znak to litera / podkreślnik, a wszystkie pozostałe znaki to litery, cyfry lub podkreślenia, C # nie będzie skarżyć się. Jednak biblioteki klas dostarczane z platformą .NET są zgodne z konwencją wewnętrznie przyjętą przez Microsoft. Microsoft opublikował również te wytyczne , aby inni mogli zdecydować się na ich zastosowanie również w bibliotekach własnych klas. Mimo, że Twoim wyborem jest postępowanie zgodnie z wytycznymi Microsoft lub ignorowanie ich, zapoznanie się z Twoim kodem przez innych może przyspieszyć, jeśli zastosujesz te same wytyczne nazewnictwa.
źródło
this
kluczowe robi to samo. Wybory stylu są praktyczne, nawet jeśli mogą wydawać się obceByć może z powodu wpływu Pascala / Delphi. Twórca C # i Delphi był w końcu tą samą osobą (Anders Hejlsberg).
Konwencje kodowania Delphi w zasadzie są w tym aspekcie takie same jak C #; patrz http://www.econos.de/delphi/cs.html#ObjectPascal_Procedures lub http://wiki.delphi-jedi.org/index.php?title=Style_Guide#Method_Naming - przypadek?
źródło
Oprócz innych udzielonych odpowiedzi, posiadanie wielbłąda dla metod oznacza, że mogą one powodować konflikty z nazwami członków prywatnych, parametrami i zmiennymi metod, które używają wielkości wielbłąda do nazywania. W Javie (i C # 1.0) nie jest to zbyt powszechne, ponieważ korzystanie z funkcji delegowania jest niewygodne i rzadkie. We współczesnym języku C # nie jest to dość powszechne , ale nie jest też niespotykane.
źródło