Výběr vhodného datového typu

Dokončeno

Přečetli jste si o rozdílu mezi hodnotovými typy a odkazovými typy a také integrálními typy a typy s plovoucí desetinnou čárkou.

Předpokládejme, že vaším úkolem je vytvořit novou aplikaci, která načítá, zpracovává a ukládá různé typy dat. Jaké datové typy používáte?

V některých případech je to snadná volba. Pokud například potřebujete pracovat s textem, použijete výchozí datový string typ, pokud nepotřebujete provádět značné množství zřetězení.

Jak ale pracovat s číselnými daty? K dispozici je 11 různých možností. Jak vyberete vhodný datový typ?

Výběr vhodného datového typu

Když můžete vybírat z takového množství datových typů, jaká kritéria byste měli použít pro výběr datového typu vhodného pro konkrétní situaci?

Při vyhodnocování vašich možností musíte zvážit několik důležitých aspektů. Často neexistuje jediná správná odpověď, ale některé odpovědi jsou vhodnější než jiné.

Zvolte datový typ, který splňuje požadavky na rozsah hodnot hranic vaší aplikace.

Volba datového typu může pomoct nastavit hranice pro velikost dat, která můžete ukládat do příslušné proměnné. Pokud například víte, že konkrétní proměnná by měla obsahovat jenom číslo mezi 1 a 10 000, jinak je mimo hranice toho, co by se očekávalo, pravděpodobně byste se vyhnuli byte a sbyte protože jejich rozsahy jsou příliš nízké.

Navíc pravděpodobně nebudete potřebovat int, , longuinta ulong protože mohou ukládat více dat, než je nutné. Podobně byste pravděpodobně vynechali float, double a decimal, pokud byste nepotřebovali desetinné hodnoty. Můžete ho zúžit na short a ushort, z nichž obě mohou být přijatelné. Pokud máte jistotu, že záporná hodnota nebude mít v aplikaci žádný význam, můžete zvolit ushort (kladné celé číslo bez znaménka, 0 až 65 535). Jakákoli hodnota přiřazená proměnné typu ushort mimo hranici od 0 do 65 535 by vyvolala výjimku a pomohla vám tak ověřit rozumnost vaší volby v aplikaci.

Začněte výběrem datového typu, který se má přizpůsobit datům (neoptimalizovat výkon).

Můžete být lákaví zvolit datový typ, který k ukládání dat používá nejmenší bity, a myslet si, že zlepšuje výkon vaší aplikace. Jednou z nejlepších rad týkajících se výkonu aplikace (tzn. toho, jak rychle vaše aplikace běží) je nesnažit se ji „předčasně optimalizovat“. Měli byste odolat pokušení odhadnout části kódu, včetně výběru datových typů, které můžou mít vliv na výkon vaší aplikace.

Mnoho uživatelů předpokládá, že když určitý datový typ ukládá méně informací, musí také využívat procesor a paměť počítače méně než datový typ ukládající více informací. Zaměřte se na to, co je vhodné pro vaše data. Výkon vaší aplikace můžete později empiricky změřit pomocí speciálního softwaru, který poskytuje faktické informace týkající se částí vaší aplikace, které mají na výkon negativní vliv.

Výběr datových typů na základě použitých vstupních a výstupních datových typů funkcí knihovny

Předpokládejme, že chcete pracovat s rozpětím let mezi dvěma kalendářními daty. Vzhledem k tomu, že aplikace je obchodní aplikace, můžete zjistit, že potřebujete pouze rozsah od 1960 do 2200. Možná si myslíte, že se pokusíte pracovat byte , protože může představovat čísla od 0 do 255.

Když se ale podíváte na integrované metody pro třídy System.TimeSpan a System.DateTime, zjistíte, že většinou přijímají hodnoty typu double a int. Pokud zvolíte sbyte, budete hodnoty neustále přetypovávat mezi byte a double nebo int. V takovém případě by dávalo větší smysl zvolit int, pokud nepotřebujete přesnost na zlomky sekundy, a double, pokud takovou přesnost potřebujete.

Volba datových typů na základě dopadu na jiné systémy

Někdy je potřeba vzít v úvahu, jak budou informace využívány jinými aplikacemi nebo jinými systémy, například databází. Například systém typů SQL Serveru se liší od systému typů C#. Než budete moct uložit data do této databáze, bude muset dojít k mapování mezi těmito dvěma systémy.

Pokud je účelem vaší aplikace rozhraní s databází, budete pravděpodobně muset zvážit, jak se data ukládají a kolik dat se ukládají. Volba většího datového typu může mít vliv na množství (a náklady) fyzického úložiště potřebného k uložení všech dat, která vaše aplikace vygeneruje.

Pokud budete pochybovat, držte se základů

I když jste se podívali na několik aspektů, jak začínáte, pro jednoduchost byste měli preferovat podmnožinu základních datových typů, včetně:

  • int pro většinu celých čísel
  • decimal pro čísla představující peníze
  • bool pro hodnoty true nebo false
  • string pro alfanumerické hodnoty

Volba speciálních komplexních typů pro zvláštní situace

Nevytvávejte znovu datové typy, pokud pro daný účel již existuje jeden nebo více datových typů. Následující příklady určují, kde mohou být užitečné konkrétní datové typy .NET:

  • byte: Práce s kódovanými daty pocházejícími z jiných počítačových systémů nebo pomocí různých znakových sad.
  • double: práce s geometrickými nebo vědeckými účely. double se často používá při vytváření her, které zahrnují pohyb
  • System.DateTime pro konkrétní hodnotu kalendářního data a času
  • System.TimeSpan pro rozpětí let/měsíců/dnů/hodin/minut/sekund/milisekund

Rekapitulace

Při výběru datových typů pro váš kód je potřeba vzít v úvahu a často více než jednu možnost. Promyslete si své volby, a pokud nemáte dobrý důvod, zkuste držet základní typy jako int, decimal, stringa bool.