C# Snabbreferens
  • C# snabbreferens
  • Lathund: Skapa projekt
  • Lathund: koda i konsolen
  • Lathund: koda i WPF
  • Kompilering och publicering
  • Externa resurser
  • Grundläggande
    • Datatyper […]
      • String
      • Tuples
      • Enum
    • Fel
    • Typkonvertering
    • Operatorer
    • Boolska satser
    • Konsolen (Console)
    • If-satser
    • Loopar
    • Listor och arrayer
    • Slump (Random)
    • Strings
    • Metoder
    • Använda bibliotek (using)
    • Delegates, events och lambdas
    • Matematik (Math)
    • Vektorer (Numerics)
    • Datum och tid
    • Try-catch och Exception
    • Namngivning
    • Begrepp
    • Reference vs value types
    • Projektstruktur
    • Dotnet i terminalen
  • Filhantering
    • Filsökvägar
    • Läsa och skriva
    • Filer och mappar
    • Open, close, using
    • Serialisering […]
      • JSON-serialisering
      • XML-serialisering
    • Resursfiler
    • Filformat
      • JSON
  • Klasser och objektorientering
    • Översikt objektorientering
    • Lathund för klassdesign
    • Klasser och instanser
    • Struct
    • Public, private och protected
    • Klassdiagram
    • Klassmetoder
    • Konstruktorer
    • Arv
    • Komposition
    • Inkapsling och properties
    • Static
    • Polymorfism […]
      • Virtual, override
    • Generiska klasser
    • Abstract
    • Interface
    • Attribut
  • Annat
    • RayLib […]
      • Raylib setup
      • Fönster i Raylib
      • Grundläggande grafik
      • Geometriska former
      • Bilder och texturer
        • Texture
        • Image
      • Input
      • Text
      • Rectangle
      • Kollisioner
      • Kamera
      • Ljud
      • Raylib-CSharp*
    • MonoGame […]
      • Monogame-projekt*
      • MCGB Editor*
      • Input*
      • Grafik*
      • Kollisioner
      • Ljud*
    • Nätverk och internet […]
      • CRUD, HTTP och REST
      • URL:er och REST
      • RESTful client*
      • Thunder
      • RESTful server (Minimal API)
        • Swagger och OpenAPI
      • RESTful server (Web API) […]
        • Controllers
        • Models/dataklasser
        • Tester med RESTer
    • Linq
      • Linq-metoder
      • Linq-queries
    • Databaser
      • SQLite-kommandon
      • SQLite och VSCode
      • C# och SQLite
      • Entity Framework Core
    • Threading
      • Thread
      • Task
    • Pseudokod och diagram
    • Windows UI
      • WPF
      • XAML*
      • WinUI*
  • Mjukvara
    • Dotnet SDK
    • Visual Studio Code […]
      • Extensions
      • Inställningar
      • Debugging
      • Snabbkommandon
      • Snippets
      • Felsökning
    • Git & GitHub […]
      • Git-begrepp
    • Andra verktyg
  • Tekniker
    • Begränsa input
    • Game states
    • Gå igenom en array (eller lista)
    • Länkade listor och andra strukturer
    • Ta bort saker ur listan man går igenom
    • 2D-spelbräden
    • Timers
  • CONTRIBUTING
Powered by GitBook
On this page
  • Implicit konvertering
  • Exempel:
  • Casting
  • As
  • Is
  • Konvertera till int
  • int.Parse()
  • int.TryParse()
  • Konvertera till float
  • float.Parse()
  • float.TryParse()

Was this helpful?

  1. Grundläggande

Typkonvertering

Implicit konvertering

En del datatyper kan lätt konverteras till andra utan att man behöver göra någon manuell konvertering. Det gäller framför allt när konverteringen inte innebär att man blir av med information eller precision.

int i = 9;
long l = i;

Exempel:

  • int → long

  • int → string

  • int → float

  • float → double

Casting

När konverteringen innebär att man blir av med precision, t.ex. går från en float till en int och blir av med decimaler, så använder man ibland casting. Det betyder att man helt enkelt skriver vilken datatyp man vill konvertera till inom parenteser innan värdet som ska konverteras.

float xPos = 3.4f;
int x = (int) xPos;

As

As går också lite snabbare än casting.

// Säger att instansen som enemy-variabeln pekar mot är en instans av Goomba,
//  och att Goomba-variabeln "g" också ska peka mot samma instans.
Goomba g = enemy as Goomba;

Is

// Om instansen som enemy-variabeln pekar mot är en instans av Goomba-klassen,
//  så kör koden inuti if-blocket.

if (enemy is Goomba)
{
  // ---
}

Is kan också göra en samtidig As-operation.

// Om instansen som enemy-variabeln pekar mot är en instans av Goomba-klassen
//  så skapa en ny variabel "g" som är an datatypen Goomba och pekar mot
//  samma instans.

if (enemy is Goomba g)
{
  g.SetColor("Brown");
}

Konvertera till int

int.Parse()

Många datatyper kan inte konverteras direkt till t.ex. en int. Metoden int.Parse tar emot nästan vad som helst – t.ex. en string – och försöker konvertera den till en int.

string tal = "42";
int i = int.Parse(tal);

int.TryParse()

För en enkel, säker konvertering kan man använda TryParse.

string tal = "42";
int resultat;
bool lyckad = int.TryParse(tal, out resultat);

TryParse returnerar true om konverteringen lyckades, false om den inte lyckades. Resultatet lagras i variabeln som anges som "out"-variabel i den andra parametern (i exemplet, variabeln "resultat"). Om konverteringen misslyckas så blir resultatet 0.

Konvertera till float

float.Parse()

Tar emot ett värde, och konverterar det till en float – om det går. Resultatet av konverteringen returneras.

string tal = "42.5"
float f = float.Parse(tal);

Om det inte går att konvertera värdet till en float, kommer Parse att ge ifrån sig ett runtime-felmeddelande.

float.TryParse()

För en enkel, säker konvertering kan man använda TryParse.

string tal = "42.5";
float f;
bool lyckad = float.TryParse(tal, out f);

TryParse returnerar true om konverteringen lyckades, false om den inte lyckades. Resultatet lagras i variabeln som anges som "out"-variabel i den andra parametern (i exemplet, variabeln "resultat"). Om konverteringen misslyckas så blir resultatet 0.

PreviousFelNextOperatorer

Last updated 7 months ago

Was this helpful?

As fyller en liknande funktion som casting, men fungerar bara på datatyper som är av referenstyp (t.ex. klasser) och datatyper som kan bli null (t.ex. string). Detta är mest användbart när man använt .

Is kan användas för att se vilken datatyp ett värde är. Detta är mest användbart när man använt .

OBS: Parse kommer att orsaka ett runtime error ifall den string som anges inte kan konverteras till en int. Använd för att fånga upp felet eller använd TryParse istället för Parse.

polymorfi
polymorfi
try-catch