Naudojant #, kad būtų pažymėtos konstantos?

 private const int THE_ANSWER = 42; 

arba

 private const int theAnswer = 42; 

Aš asmeniškai manau, kad su šiuolaikiniais IDE turėtume eiti su camelCase, nes ALL_CAPS atrodo keista. Ką manote?

296
28 окт. Nustatė mmiika spalis 28 2008-10-28 11:16 '08, 11:16, 2008-10-28 11:16
@ 9 atsakymai

Rekomenduojama pavadinimo ir kapitalizavimo konvencija yra naudoti „Pascal“ apvalkalą konstantoms („Microsoft“ turi įrankį, pavadintą „ StyleCop“, kuris dokumentuoja visas pageidaujamas konvencijas ir gali patikrinti jūsų šaltinį, kad jis būtų nuoseklus - nors tai yra per daug patvarus daugeliui žmonių). Pavyzdžiui.

 private const int TheAnswer = 42; 

„Pascal Capitalization Agreement“ taip pat aprašyta „Microsoft“ pagrindų kūrimo vadove.

342
28 окт. atsakymas, kurį pateikė Greg Beech, spalio 28 d. 2008-10-28 11:25 '08, 11:25, 2008-10-28 11:25

Tiesą sakant, tai

 private const int TheAnswer = 42; 

Bent jau, jei pažvelgsite į „.NET“ biblioteką, kurią IMO yra geriausias būdas apibrėžti pavadinimo konvencijas, todėl jūsų kodas neatrodo netinkamas.

60
28 окт. atsakymas duotas bh213 28 okt. 2008-10-28 11:23 '08, 11:23, 2008-10-28 11:23

Vizualiai, viršutinis atvejis yra kelias. Tai taip atpažįstama. Dėl unikalumo ir nepaliekant galimybės atspėti, aš balsuoju už UPPER_CASE!

 const int THE_ANSWER = 42; 

Pastaba Didžiosios raidės bus naudingos, jei konstantos bus naudojamos viename faile puslapio viršuje ir intellisense; tačiau, jei jie bus perkelti į nepriklausomą klasę, naudojant „Upper Case“, nereikės daug ką, pavyzdžiui:

 public static class Constant { public static readonly int Cons1 = 1; public static readonly int coNs2 = 2; public static readonly int cOns3 = 3; public static readonly int CONS4 = 4; } // Call constants from anywhere // Since the class has a unique and recognizable name, Upper Case might might lose its charm private void DoSomething(){ var getCons1 = Constant.Cons1; var getCons2 = Constant.coNs2; var getCons3 = Constant.cOns3; var getCons4 = Constant.CONS4; } 
35
21 мая '14 в 18:34 2014-05-21 18:34 atsakymas pateikiamas naudingaisBee gegužės 21, 14, 18:34 2014-05-21 18:34

Aš vis dar prilimpa prie didžiųjų raidžių reikšmių konstantoms, bet tai daugiau nei įprasta, nei bet kokia konkreti priežastis.

Žinoma, lengva pamatyti, kad kažkas yra pastovus. Klausimas man: ar mums tikrai reikia šios informacijos? Ar tai mums padeda išvengti klaidų? Jei priskirsiu reikšmę const, kompiliatorius man pasakys, kad kažką padariau kvailą.

Mano išvada: eikite su kupranugario korpusu. Galbūt aš taip pat pakeisiu savo stilių: -)

Redaguoti:

Tai, kad kažkas kvepia vengriškai, nėra teisingas argumentas, TJO. Klausimas visada turėtų būti: Ar jis jam padeda ar pakenkė?

Yra laikų, kai Vengrija padeda. Šiandien ne daug, bet jie vis dar egzistuoja.

19
28 окт. atsakymas suteiktas Treb Oct 28 2008-10-28 11:21 '08 at 11:21 2008-10-28 11:21

Pirma, Vengrijos notacija yra praktika naudoti prefiksą, kad būtų rodomas parametrų duomenų tipas arba numatomas naudojimas. „Microsoft“ įvardijimo „ne“ Vengrijos žymeniui skyrimo sutartys http://en.wikipedia.org/wiki/Hungarian_notation http://msdn.microsoft.com/en-us/library/ms229045.aspx

Nerekomenduojama naudoti UPPERCASE, kaip nurodyta čia: Pascal Case - priimtina konvencija ir SCREENING. http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming

„Microsoft“ taip pat teigia, kad „UPPERCASE“ gali būti naudojama, jei tai daroma siekiant suderinti esamą schemą. http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx

Tai gana daug.

14
28 окт. atsakymas, kurį pateikė user31939 28 spalis. 2008-10-28 13:37 '08 13:37 pm 2008-10-28 13:37

Padėkite vengrai vengrai.

Šiame pavyzdyje netgi atsisakau galutinio straipsnio ir tiesiog nuėjau

 private const int Answer = 42; 

Ar tai yra atsakymas?

* Padaryta redagavimo kaip Pascal griežtai teisinga, bet aš maniau, kad klausimas reikalauja daugiau atsakymo į gyvenimą, visatą ir visa tai.

10
28 окт. Atsakyti dove spalio 28. 2008-10-28 11:19 '08, 11:19, 2008-10-28 11:19

Savo straipsnyje „ Constants“ („C # programavimo vadovas“) „ Microsoft“ pateikia šį pavyzdį:

 class Calendar3 { const int months = 12; const int weeks = 52; const int days = 365; const double daysPerWeek = (double) days / (double) weeks; const double daysPerMonth = (double) days / (double) months; } 

Taigi, konstantoms, atrodo, kad „Microsoft“ rekomenduoja naudoti „ camelCasing .


PAKEITIMAS

Praktiškai „Microsoft“ dokumentuoja savo viešai prieinamas konstantas .NET klasės bibliotekoje kaip laukus . Štai keletas pavyzdžių:

Pirmieji du yra PascalCasing pavyzdžiai. Trečiasis atrodo, kad laikosi „Microsoft“ kapitalizacijos susitarimų dėl dviejų raidžių sutrumpinimo (nors „ pi“ nėra akronas). Ketvirta, matyt, daroma prielaida, kad dviejų raidžių akronomo taisyklė taikoma vienos raidės santrumpai ar identifikatoriui, pvz., E

Be to, „Microsoft“ labai aiškiai nurodo didžiosios raidės susitarimų dokumentą, kad Field ID turi būti vadinamas „ PascalCasing“, o šie pavyzdžiai pateikiami „ MessageQueue.InfiniteTimeout“ ir „ UInt32.Min“ :

9
02 янв. Atsakyti DavidRR 02 Jan 2014-01-02 22:42 '14, 10:42 pm 2014-01-02 22:42

Tiesą sakant, aš čia norėčiau PascalCase, bet iš įpročio aš kaltinu UPPER_CASE ...

5
28 окт. atsakymas, kurį pateikė Marc Gravell, spalio 28 d 2008-10-28 11:27 '08, 11:27 am. 2008-10-28 11:27

ALL_CAPS yra paimta iš C ir C ++, manau. Šiame straipsnyje paaiškinama, kaip atsirado stiliaus skirtumai.

Naujoje IDE, pvz., „Visual Studio“, lengva apibrėžti tipus, taikymo sritį ir konstantas, todėl tai nėra būtina.

FxCop“ ir „Microsoft StyleCop“ programinė įranga padės jums pateikti rekomendacijas ir patikrinti savo kodą taip, kad visi dirbtų vienodai.

4
28 окт. Jono atsakymą pateikė spalio 28 d. 2008-10-28 11:21 '08 at 11:21 2008-10-28 11:21

Kiti klausimai apie žymes arba Užduoti klausimą