it-swarm-eu.dev

Jak pojmenujete své soukromé proměnné v C #?

Jaký je nejlepší postup, nejčastěji přijímané konvence pojmenování soukromých proměnných v C #?

  1. private int myInteger;
  2. private int MyInteger;
  3. private int mMyInteger;
  4. private int _myInteger;
  5. private int _MyInteger;
  6. Tajemná jiná možnost

Které používáte a proč? (Moje společnost je do C # docela nová a ráda bych si vybrala metodu, která je nejvíce akceptována v průmyslu, abych se pokusila dostat do našeho standardu kódování.)

25
Vaccano

Pokyny pro návrh třídy MSDN http://msdn.Microsoft.com/en-us/library/ta31s3bc.aspx doporučuje možnost 1 - myInteger.

Tento styl jsem vždy používal. Osobně se mi nelíbí znak _.

44
btlog

Používám možnost č. 4 výše:

private int _myInteger;

Líbí se mi, že v mých proměnných je nějaký rozsah a podtržítko je pro tento účel dostačující. Je také velmi snadno čitelný.

25
Matt Dillard

Používám následující schéma pojmenování:

  • 1. (myInteger) pro lokální proměnné
  • 2. (MyInteger) pro veřejné vlastnosti
  • 4. (_myInteger) pro soukromé proměnné
16
Zafer

Myslím, že možnost 4 je opravdu nejčitelnější možností. Pomůže vám to udělat:

public Person(string name, int age) 
{
    this.name = name;
    this.age = age;
}

Také to zviditelní všechny soukromé členy. V následujícím příkladu, kde je sakra age pochází? Bez kvalifikátoru this je těžší říct.

private void Method()
{
    var x = 2;
    var y = age + x;
}

To je mnohem srozumitelnější:

private void Method()
{
    var x = 2;
    var y = _age + x;
}
14
ChaosPandion

Za prvé, PascalCasing je běžně vyhrazen pro veřejné vlastnosti, konstanty, metody atd. Třídy. Takže bych přeskočil 2 a 5.

Za druhé, ve světě .NET je maďarská notace odrazována, takže (myslím si) 3 je hned na místě. Za předpokladu, že se to děje s 3.

To odejde s camelCasing a _camelCasing. Obvykle používám _camelCasing pro proměnné třídy a obyčejný starý camelCasing pro proměnné s rozsahem metody nebo užší. Velbloudí pouzdro je uznávaný standard používaný pro argumenty metody, chráněné/soukromé názvy proměnných a proměnné v rámci metody nebo užšího rozsahu.

Také se ráda připojuji k podtržítku, takže moje soukromé proměnné jsou seskupeny podle mého inteligence. Dělám to však jen pro proměnné s rozsahem na určitý typ. Proměnné deklarované v rámci metody nebo užšího rozsahu nechám podtržítko vypnuto. Usnadňuje jejich oddělení a udržování méně používaných proměnných pohromadě.

10
Ripped Off

private int integer

Pokud se v rozsahu metody zaměníme mezi členskými a místními proměnnými, pravděpodobně budete muset refaktorovat.

4
Ryan Roberts

Udělal jsem možnost č. 4, protože to je to, jak vypadá SSCLI, ale upřímně se mi moc nestará o pojmenování soukromé proměnné. Veřejnost je jiný příběh.

BTW jste zapomněli m_MyInteger

2
Conrad Frix

Neřekl bych tomu „moje“ nic!

Ale řekl bych

class C
{
     int VariableName { get; set; }
}

docela často je to hezčí než mít explicitní proměnné. Kdybych měl explicitní soukromou proměnnou, nazval bych ji int _variableName;

2
CJBrew

Věřím, že nejlepším způsobem, jak toho dosáhnout (i přesto v C # /. Net), je kombinace 2 a 6:

private int MyInteger { get; set; }

Teoreticky neexistuje žádná proměnná, ale vypadá to a chová se jako proměnná soukromé instance. Pokud k této hodnotě potřebujeme přidat nějakou obchodní logiku (jedná se o zcela vnitřní hodnotu, takže můžeme dělat vše, co chceme, po tom všem), pak je to pro nás již „majetkové“. Horká kouřící výhra!

2
Task

s podtržítkem.

Bill Wagner vysvětluje, proč v efektivní C # . Ale nikdy bych nepojmenoval celé číslo moje celé číslo , lépe něco jako _age nebo _length. Zahrnutí TypeName do názvu instance je hrozná praxe. Názvy by měly být samy vysvětlující a protože C # je Type-Safe typy lze zjistit att att time.

1
Caspar Kleijne

V C++ mám tendenci používat _, protože hodně přepínám editory, což mi neumožňuje zjistit, jestli je to soukromé.

Pro C # mám sklon opustit _ pryč, protože mi Visual Studio umožňuje zjistit, jestli je to soukromé.

Mám sklon k tomu používat způsob Camel Case.

1
Tamara Wijsman

Musíte uvést konkrétnější příklad, ale:

private int count, private int badFileCount, private static readonly int ReconnectAttemptsLimit

Mimochodem, toto vše dostanete ZDARMA , když instalujete a začnete používat nejnovější a největší MSFT Stylecop.

1
Job

Používám 4 (private int _myInteger;) protože:

private int myInteger;

Takto pojmenuji své lokální proměnné.

private int MyInteger;

Takto pojmenuji konstanty.

private int mMyInteger;

Toto není styl C #.

private int _MyInteger;

Vypadá to divně.

1

Mám název ReSharper, který pojmenovává nejen moje, ale i ostatní. Projektem existuje velké množství konzistence.

0
Sevki

Jdu podle možnosti 5: private int _MyFoo

Nevidím však žádnou skutečnou konkurenční výhodu oproti _myFoo.

0
mafu

Juval Lowy's IDesign C # Coding Standard je docela populární. Tento standard doporučuje předponu soukromých členských proměnných předponou „m_“ (možnost 6). To děláme v našem týmu.

private int m_myInteger;

Možnost 4 (_myInteger) je přijatelná varianta této normy.

Nelíbilo se mi doporučení MSDN (myInteger), protože je obtížné říct soukromému členovi z lokální proměnné. Jejich doporučení samozřejmě tento problém řeší kvalifikací soukromých členů pomocí this, což se mi zdá zbytečné.

0
azheglov

Použijte camelCasing pro soukromé proměnné jako myInteger

Zvažte předchozí _ je-li proměnná zálohou vlastnosti, která snižuje záměny,
Proměnná _myProperty pro vlastnost MyProperty

0
Gulshan