Zjišťování typů hodnot a referenčních typů
- 8 min
Pokud máte v jazyce C# k dispozici mnoho datových typů, vyberte ten správný, který chcete použít, znamená to, že potřebujete pochopit, kdy si můžete vybrat jeden datový typ nad jiným.
Než začnete diskutovat o tom, proč byste mohli zvolit jeden datový typ nad jiným, potřebujete porozumět více datovým typům. Potřebujete také vědět, jak fungují data a datové typy v jazyce C# a .NET.
Co jsou data?
Odpověď na otázku "co jsou data" závisí na tom, koho se ptáte, a v jakém kontextu ji kladete.
Při vývoji softwaru jsou data v podstatě hodnotou, která je uložená v paměti počítače jako řada bitů.
Bit je jednoduchý binární přepínač reprezentovaný jako nebo 01nebo spíše "vypnuto" a "zapnuto". Jeden bit se zdá být užitečný, ale když zkombinujete 8 bitů dohromady v sekvenci, tvoří bajt. Při použití v bajtu má každý bit význam v sekvenci. Ve skutečnosti můžete reprezentovat 256 různých kombinací s pouhými 8 bity, pokud použijete binární (základní-2) číselný systém.
Například v binárním číselném systému můžete reprezentovat číslo 195 jako 11000011. Následující tabulka vám pomůže vizualizovat, jak to funguje. První řádek obsahuje osm sloupců, které odpovídají pozici v bajtu. Každá pozice představuje jinou číselnou hodnotu. Druhý řádek může uložit hodnotu jednotlivého bitu, nebo 01.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
Pokud sčítáte číslo z každého sloupce v prvním řádku, který odpovídá 1 druhému řádku, získáte desetinné číslo ekvivalentní binární soustavě. V tomto případě by to bylo 128 + 64 + 2 + 1 = 195.
Pokud chcete pracovat s většími hodnotami nad rámec 255, počítač ukládá více bajtů (obvykle 32bitová nebo 64bitová verze). Pokud pracujete s miliony velkých čísel ve vědeckém nastavení, možná budete muset pečlivěji zvážit, které datové typy používáte. Váš kód může vyžadovat více paměti ke spuštění.
A co textová data?
Pokud počítač rozumí 0jenom s a 1s, jak vám umožní pracovat s textem? Pomocí systému, jako je ASCII (Americký standardní kód pro výměnu informací), můžete použít jeden bajt k reprezentaci velkých a malých písmen, čísel, tabulátoru, backspace, newline a mnoha matematických symbolů.
Pokud byste například chtěli uložit malé písmeno a jako hodnotu v aplikaci, počítač by porozuměl pouze binární formě této hodnoty. Abychom lépe pochopili, jak počítač zpracovává malé písmeno a , potřebuji najít tabulku ASCII, která poskytuje hodnoty ASCII a jejich desítkové ekvivalenty. Pokud chcete takový prostředek najít online, můžete vyhledat výrazy "ASCII lookup decimal" (Desetinné číslo ASCII).
V tomto případě je malé písmeno a ekvivalentní desítkové hodnotě 97. Pak byste použili stejný binární číselný systém obráceně, abyste zjistili, jak je písmeno a ASCII uložené počítačem.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
Vzhledem k tomu 64 + 32 + 1 = 97, 8-bit binární kód ASCII pro a je 01100001.
Je pravděpodobné, že tyto typy převodů nebudete muset provádět sami, ale pochopení perspektivy dat v počítači je základní koncept, zejména když uvažujete o datových typech.
Co je datový typ?
Datový typ je způsob, jakým programovací jazyk definuje, kolik paměti se má uložit pro hodnotu. V jazyce C# existuje mnoho datových typů, které se mají použít pro mnoho různých aplikací a velikostí dat.
U většiny aplikací, které vytváříte ve své kariéře, se urovnáte na malé podmnožině všech dostupných datových typů. Je však stále důležité vědět, že ostatní existují a proč.
Hodnota vs. odkazové typy
Tento modul se zaměřuje na dva typy typů v jazyce C#: odkazové typy a typy hodnot.
Proměnné referenčních typů ukládají odkazy na jejich data (objekty), které odkazují na datové hodnoty uložené někde jinde. Ve srovnání proměnné hodnotových typů přímo obsahují jejich data. Když se dozvíte více o jazyce C#, objevují se nové podrobnosti týkající se základního rozdílu mezi hodnotami a odkazovými typy.
Jednoduché typy hodnot
Jednoduché typy hodnot představují sadu předdefinovaných typů, které jazyk C# poskytuje jako klíčová slova. Tato klíčová slova jsou aliasy (přezdívka) pro předdefinované typy definované v knihovně tříd .NET. Například klíčové slovo int jazyka C# je alias typu hodnoty definovaného v knihovně tříd .NET jako System.Int32.
Jednoduché typy hodnot zahrnují mnoho datových typů, které jste již použili jako char a bool. Existuje také mnoho integrálních a desetinných hodnotových typů, které představují široký rozsah celých a desetinných čísel.
Rekapitulace
- Hodnoty se ukládají jako bity, což jsou jednoduché přepínače zapnuto/vypnuto. Kombinace dostatečného množství těchto přepínačů umožňuje ukládat pouze libovolnou možnou hodnotu.
- Existují dvě základní kategorie datových typů: hodnoty a odkazové typy. Rozdíl spočívá v tom, jak a kde jsou hodnoty uloženy počítačem při provádění programu.
- Jednoduché typy hodnot používají alias klíčového slova k reprezentaci formálních názvů typů v knihovně .NET.