Special och metatyper
✨ Introduktion till specialtyper
Specialtyper ger flexibilitet och kraftfulla funktioner för avancerade programmeringsscenarier.
🎯 Specialtyper
var - Implicit typing
var- Låter kompilatorn bestämma typ- Typ bestäms vid kompileringstid
- Variabeln måste initialiseras
- Bibehåller strong typing
object - Universal bastyp
object- Bastyp för alla typer- Kan hålla vilken typ som helst
- Kräver casting för användning
- Boxing/unboxing för värdetyper
dynamic - Runtime typing
dynamic- Typ löses vid körtid- Hoppar över compile-time type checking
- Används för COM interop, reflection
- Prestanda-impact
Nullable types - Null-värden
int?- Value types som kan vara nullstring?- Nullable reference types (C-Sharp 8+)- Null-safe operatorer:
?.,?? - Hjälper undvika null reference exceptions
🚀 När använda vad?
var för:
- Långa typnamn eller komplexa generics
- LINQ-uttryck
- När typen är uppenbar från kontexten
object för:
- Legacy kod
- Collections innan generics
- Mycket sällan i modern C-Sharp
dynamic för:
- COM interoperability
- JSON deserialization utan modeller
- Reflection-tunga scenarier
Nullable för:
- Databas-värden som kan vara null
- Optional parameters
- Säker null-hantering
⚠️ Använd med försiktighet
Dessa typer kan göra kod mindre type-safe och svårare att förstå. Använd bara när det verkligen behövs.