C# Academy · Lekcja

Przyrostki w praktyce; rzutowanie a konwersja; tworzenie obiektów w C# 6

Poznaj praktyczne zastosowanie przyrostków liczbowych, różnicę między rzutowaniem a konwersją oraz sposób zapisu tworzenia obiektów zgodnego z C# 6 (bez target-typed new).

Lekcja 3 z 38 kroki

Przyrostki w praktyce; rzutowanie a konwersja; tworzenie obiektów w C# 6 to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 3 lekcji w sumie.

Przegląd lekcji

Cel: poprawnie używać sufiksów liczbowych, wiedzieć, kiedy rzutować, a kiedy konwertować, oraz tworzyć obiekty w C# 6 bez składni new zależnej od typu docelowego.

Sufiksy w praktyce

Sufiksy: należy używać f dla float (3.14f), m dla decimal (10m) oraz L dla long (123L). Typy należy dobierać odpowiednio do wymaganej precyzji i zakresu.

Podstawy rzutowania

Rzutowanie zmienia sposób, w jaki kompilator interpretuje wartość; jawne rzutowanie może spowodować utratę danych.

using System;

public class Program
{
  public static void Main(string[] args)
  {
    // Implicit numeric promotion (safe)
    int i = 42;
    double d = i; // implicit cast to double
    Console.WriteLine("d = " + d);

    // Explicit cast (possible data loss)
    double pi = 3.99;
    int n = (int)pi; // truncates
    Console.WriteLine("n = " + n);
  }
}

Podstawy konwersji

Konwersja przekształca dane: TryParse jest najbezpieczniejszą opcją, a Parse i Convert mogą zgłaszać wyjątki dla nieprawidłowych danych wejściowych.

using System;

public class Program
{
  public static void Main(string[] args)
  {
    string text = "123";
    int value;

    // TryParse: safe conversion (no exception)
    bool ok = int.TryParse(text, out value);
    Console.WriteLine("ok=" + ok + " value=" + value);

    // Convert: throws if invalid
    int v2 = Convert.ToInt32(3.7); // rounds to 4
    Console.WriteLine("v2=" + v2);

    // Parse: throws if invalid
    int v3 = int.Parse("42");
    Console.WriteLine("v3=" + v3);
  }
}

Tworzenie obiektów w C# 6

W C# 6 nie ma składni new zależnej od typu docelowego: typ należy zapisać jawnie po lewej stronie lub w konstruktorze. W przypadku starszych kompilatorów należy unikać nowszej składni.

using System;

// Simple point class
public class Point
{
  public int X;
  public int Y;
}

public class Program
{
  public static void Main(string[] args)
  {
    // C# 6 style: specify the type on the left or right
    Point p1 = new Point();
    p1.X = 1; p1.Y = 2;

    var p2 = new Point(); // type inferred from constructor
    p2.X = 3; p2.Y = 4;

    Console.WriteLine("p1=(" + p1.X + "," + p1.Y + ")");
    Console.WriteLine("p2=(" + p2.X + "," + p2.Y + ")");
  }
}

Wszystko razem

Warto porównać wyniki rzutowania i konwersji oraz zobaczyć wszystkie sufiksy w jednym miejscu. W przypadku danych wprowadzanych przez użytkownika należy preferować TryParse.

using System;

public class Program
{
  public static void Main(string[] args)
  {
    // Suffixes
    float f = 2.5f;
    decimal price = 9.99m;
    long big = 10000000000L;
    Console.WriteLine("f=" + f + " price=" + price + " big=" + big);

    // Cast vs Convert
    double d = 5.8;
    int viaCast = (int)d;              // 5 (truncate)
    int viaConvert = Convert.ToInt32(d); // 6 (round)
    Console.WriteLine("viaCast=" + viaCast + " viaConvert=" + viaConvert);

    // TryParse safety
    int n;
    bool ok = int.TryParse("oops", out n);
    Console.WriteLine("TryParse ok=" + ok + " n=" + n);
  }
}

Rzutowanie a konwersja

Szybkie sprawdzenie: które stwierdzenie dotyczące rzutowania i konwersji w C# jest prawdziwe?

Podsumowanie

Podsumowanie: należy używać sufiksów f/m/L, rzutować tylko wtedy, gdy jest to bezpieczne, oraz konwertować, gdy potrzebna jest nowa reprezentacja danych, najlepiej za pomocą TryParse. W C# 6 typy trzeba deklarować jawnie — nie ma składni new zależnej od typu docelowego.

Bezpłatny start

Ucz się C# dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
93
Lekcje
346

Często zadawane pytania

Czy lekcja „Przyrostki w praktyce; rzutowanie a konwersja; tworzenie obiektów w C# 6” jest bezpłatna?

Tak — pełny tekst „Przyrostki w praktyce; rzutowanie a konwersja; tworzenie obiektów w C# 6” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Przyrostki w praktyce; rzutowanie a konwersja; tworzenie obiektów w C# 6”?

Poznaj praktyczne zastosowanie przyrostków liczbowych, różnicę między rzutowaniem a konwersją oraz sposób zapisu tworzenia obiektów zgodnego z C# 6 (bez target-typed new). Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.

Ile czasu zajmuje lekcja „Przyrostki w praktyce; rzutowanie a konwersja; tworzenie obiektów w C# 6”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Wartości a referencje; literały; inferencja var; const/readonly
  2. Operatory i wyrażenia: arytmetyczne, porównania i logiczne
  3. Przyrostki w praktyce; rzutowanie a konwersja; tworzenie obiektów w C# 6
← Powrót do C# Academy