Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 80% výuky zdarma!
https://www.itnetwork.cz/csharp
Avatar
Majkel
Člen
Avatar
Majkel:19.10.2015 10:13

Ahoj,

jelikož často vídám, že někde je zápis typu:

MyClass myClass = new MyClass();

a někde zase

var myClass = new MyClass();

Pokládám si otázku, kdy a proč by se mělo (nemělo) var při vytváření tříd používat. Případně, proč jej nepoužívat pořád, když je to takto kratší?

 
Odpovědět
19.10.2015 10:13
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Majkel
David Čápka:19.10.2015 10:26

Oficiální konvence je, myslím, že var máš používat když je z kódu jasný typ nebo typ není důležitý. Pak tedy:

var myClass = new MyClass(); // Správě, vidíme, že myClass je typu MyCLass
var b = a; // Špatně, nevidíme, kterého typu je a (a je jedno, že je to třeba o řádku výš)

Var se nepoužívá vždy všude ze 2 důvodů:

  • Byl do C# dodán až později (tuším .NET 3.5)
  • V jiných jazycích se nepoužívá a narušuje původní koncepci jazyka

Jak to budeš dělat je na tobě, když to bude přehledné. Mně osobně to nepřijde jako dobrý nápad, bylo to původně přidané kvůli LINQ, který vrací dost šílené typy a proto se to tam hodí.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět
19.10.2015 10:26
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Odpovídá na Majkel
Jakub Šárník:19.10.2015 12:20

No a taky var jde použít pouze uvnitř metody a ne třeba u atributů.

 
Nahoru Odpovědět
19.10.2015 12:20
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Jakub Šárník
Jan Vargovský:19.10.2015 12:27

Asi myslíš fieldy, atributy jsou v C# něco jiného.

 
Nahoru Odpovědět
19.10.2015 12:27
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Majkel
Člen
Avatar
Odpovídá na Jakub Šárník
Majkel:19.10.2015 12:33

Šlo mi o vytváření tříd. A jak říká pako:

int vek = 20; // Field
public string Vek { get; set;} // Vlastnost

Neboli:
public string Vek
{
        get
        {
                return vek;
        }
        set
        {
                vek = value;
        }

Vlastnost je v podstatě metoda, do které si můžeš přidat nějakou logiku.

 
Nahoru Odpovědět
19.10.2015 12:33
Avatar
Majkel
Člen
Avatar
Odpovídá na Majkel
Majkel:19.10.2015 12:37

Jo aha atribut :D Tak to nahoře je blbost. Takhle je to správně:

int vek = 20; // Field

[Display(Name="Product Number")] // Atribut
public int ProductID { get; set; }
 
Nahoru Odpovědět
19.10.2015 12:37
Avatar
Odpovídá na Jan Vargovský
Jakub Šárník:19.10.2015 12:55

Jo myslel jsem fieldy a nemohl jsem si vzpomenout, jak se tomu v c# říká :-)

 
Nahoru Odpovědět
19.10.2015 12:55
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.