Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# lexikálne konvencie

Aké lexikálne konvencie sa používajú v jazyku C# všimol som si že na rozdiel od Delphi sa názvy typov nezačínajú písmenom T a názvy lokálnych premenných písmenom F. Viem že v jazyku C# sa pri názvoch typov a verejných členov používa PascalCase, pri názvoch privátnych členov a parametrov metód camelCase A práve v tom je problém.

Príklad:

TContentType = (ctHTML, ctXHTML);

type
  TExample = class
  private
    FContentType: TContentType;
  public
    property ContentType: TContentType read FContentType write FContentType;
  end;

ako mám tento kód zapísať podľa konvencií jazyka C#?

Tento príklad samozrejme nefunguje keďže názov vlastnosti nesmie byť zhodný s názvom typu:

public enum ContentType { HTML, XHTML }

class Example
{
    private ContentType contentType = ContentType.HTML;
    public ContentType ContentType
    {
        get { return contentType; }
        set { contentType = value; }
    }
}
Předmět Autor Datum
Kde je problem? Si nazvy pis ako to vyhovuje tebe trebars_aj_s_podtrzitkami :-) alebo tak isto ako s…
MM.. 13.12.2006 22:07
MM..
Kde je problem? Si nazvy pis ako to vyhovuje tebe trebars_aj_s_podtrzitkami alebo tak isto ako si to…
Zp 13.12.2006 22:42
Zp
Ja robim s C++ a napr. MFC kniznica ma konvencie trochu zlozitejsie (napr. zaciatok premennych zacin…
MM.. 13.12.2006 22:53
MM..
Ten príklad je podľa konvencií pre názvy v C# a funguje - názov vlastnosti môže byť rovnaký ako názo… poslední
los 14.12.2006 01:35
los

Kde je problem? Si nazvy pis ako to vyhovuje tebe trebars_aj_s_podtrzitkami :-) alebo tak isto ako si to mal v tom pascale.

P.S. ja osobne sa vzdy snazim pouzivat jasne a zretelne odlisene nazvy premennych, ak sa premenne lisia v jednom pismene tak to je v programe katastrofa odlisit a najst pripadne chyby.
ContentType nejakaVlastnost = tralala;
je prehladnejsie ako
ContentType contentType = ContentType , nie? :-)

...alebo si urob ContentTypes ako tu enumeraciu.

P.S.2. C# nerozlisuje velke/male pismena??

Kde je problem? Si nazvy pis ako to vyhovuje tebe trebars_aj_s_podtrzitkami alebo tak isto ako si to mal v tom pascale.

::) Keď si vymyslím vlastné konvencie a zvyknem si na ne, postupne budem mať problém s čítaním cudzieho kódu a ostatní budú mať problém pochopiť ten môj. Najlepšie je dodržiavať oficiálne konvencie na formátovanie kódu. A preto ma zaujíma ako podobné problémy riešia autory .NET Frameworku. Inak podtržítkam sa vyhýbam ako čert krížu.

ContentType contentType = ContentType;

Práveže názov typu aj názov premennej najlepšie vystihuje pomenovanie contenttype. C# je case sensitive, ale problém nie je v tomto riadku ale v riadku:

public ContentType ContentType

...alebo si urob ContentTypes ako tu enumeraciu.

Dík za radu to ma nenapadlo.:-p

Ja robim s C++ a napr. MFC kniznica ma konvencie trochu zlozitejsie (napr. zaciatok premennych zacina pismenom ktory vyjadruje co to je, napr.
int iPocetPrvkov; // viem ze je typu int lebo zacina na i
class CMojaTrieda blablabla... // viem ze je to trieda lebo C
apod.

Ja osobne mam svoje uchylky na ktore som zvyknuty napr. KONSTANTY_VELKYM apod :-) A ci niekto bude vediet citat moj kod je mi uplne ukradnute :-)
Ja citat cudzi kod viem, hlavne nech tam je co najmenej premennych s nazvami a1, a2, a3, aa, ab, b1, b, bx, by apod. :-D

V tom tvojom ma prave plietlo to ContentType, som si to poriadne pozrel ze co tam robis az ked som pisal P.S.2 :-)
Omnoho pochopitelnejsie by IMHO bolo nazvat to napr. ContentTypeValues alebo ContentTypesEnum alebo ContentTypes ako som pisal, ak mi niekedy vychadza ze chcem dat 2 veciam rovnaky nazov, tak tie nazvy su IMHO zle vymyslene a treba ich zmenit :-)

Ten príklad je podľa konvencií pre názvy v C# a funguje - názov vlastnosti môže byť rovnaký ako názov typu.

Konvencie pre názvy nájdeš priamo na stránkach Microsoftu: http://msdn2.microsoft.com/en-us/library/ms229002.a spx
V skratke: žiadne podčiarniky, žiadna maďarská notácia (t.j. bez prefixu podľa typu premennej), žiadne skratky (okrem všeobecne používaných, ako napr. Html, Xml, ...) a hlavne výstižné pomenovania.

Zpět do poradny Odpovědět na původní otázku Nahoru