Przejdź do treści stopki
POMOC .NET

Typy w języku C# (jak to działa dla programistów)

W każdym języku programowania zrozumienie typów danych jest kluczowe, a w C# nie jest inaczej. Niezależnie czy to typ int czy typ zmiennoprzecinkowy, każdy typ przechowuje określony rodzaj informacji, znany również jako rzeczywiste dane.

The Basics of C

C# jest językiem silnie typowanym. Ale co oznacza język silnie typowany, zapytasz? Oznacza to, że każda zmienna i obiekt musi mieć zadeklarowany typ danych. I to właśnie typ danych określa, jakie dane można przechowywać w tej zmiennej.

C# posiada dwa główne rodzaje typów danych: typy wartościowe i typy referencyjne. To także te typy własne, o których możesz słyszeć.

Value Types in C

W C#, typy wartościowe są proste. Kiedy deklarujesz zmienną typu wartościowego, rzeczywiste dane przechowywane są jako wartość przypisana do zmiennej. Jeśli zmienisz wartość jednej zmiennej, nie wpływa to na żadną inną zmienną.

Najczęstsze typy wartościowe w C# to:

  • Liczby całkowite (reprezentowane przez typ int)
  • Liczby zmiennoprzecinkowe (reprezentowane przez typy float i double)
  • Boolean, który może być prawdziwy lub fałszywy

Porozmawiajmy najpierw o typie int. Typ int w C# to 32-bitowy typ danych, który może przechowywać liczby całkowite od -2 147 483 648 do 2 147 483 647. Oto przykład:

int myInteger = 15;
int myInteger = 15;
Dim myInteger As Integer = 15
$vbLabelText   $csharpLabel

Teraz o typie zmiennoprzecinkowym. W C# istnieją dwa typy zmiennoprzecinkowe: float i double.

Typ float to 32-bitowa liczba zmiennoprzecinkowa o precyzji do 7 cyfr. Jest świetny do obliczeń naukowych. Zmienne typu float można zadeklarować w ten sposób:

float myFloat = 12.34F;
float myFloat = 12.34F;
Dim myFloat As Single = 12.34F
$vbLabelText   $csharpLabel

Typ double to 64-bitowy typ zmiennoprzecinkowy o precyzji do 15-16 cyfr. Jest bardziej dokładny niż typ float i często używany do obliczeń finansowych i monetarnych. Oto przykład zmiennej typu double:

double myDouble = 12.3456789;
double myDouble = 12.3456789;
Dim myDouble As Double = 12.3456789
$vbLabelText   $csharpLabel

Predefined Data Types in C

Dobrze, teraz dalej. C# zapewnia kilka "predefiniowanych typów danych", które można używać w aplikacjach. Są to podstawowe elementy budulcowe, które można użyć do zdefiniowania własnych "typów użytkownika".

Oto kilka przykładów:

  • byte: To 8-bitowa liczba całkowita bez znaku, obejmująca zakres od 0 do 255.
  • char: To 16-bitowy znak Unicode.
  • decimal: Idealne do obliczeń finansowych i monetarnych ze względu na wysoką precyzję.
  • bool: Przechowuje albo true, albo false, idealny do operacji logicznych.

Każdy z tych "predefiniowanych typów danych" ma swoje przeznaczenie i własną "wartość domyślną", więc ważne jest, aby wybrać odpowiedni dla swoich potrzeb!

Default Values in C

W C#, każdy typ danych ma wartość domyślną. Dla zmiennych typu wartościowego, jeśli ich nie zainicjalizujesz, automatycznie przyjmują swoją wartość domyślną.

Na przykład, wartością domyślną typu int jest 0, a wartością domyślną typu wartościowego zmiennoprzecinkowego (czy to float, czy double) jest 0,0.

Wartością domyślną dla typów referencyjnych jest null, co oznacza, że nie odnosi się do żadnego obiektu.

Type Conversion in C

Czasami może być konieczne przekonwertowanie jednego typu danych na inny. Jest to znane jako konwersja typów, a C# wspiera dwa rodzaje: konwersję jawnie i niejawnie.

Konwersja niejawna następuje automatycznie, gdy przypisujesz wartość jednego typu do zmiennej typu kompatybilnego, który może przechowywać większe wartości. Na przykład możesz przypisać typ int do typu double bez utraty informacji.

int myInt = 10;
double myDouble = myInt; // Implicit conversion
int myInt = 10;
double myDouble = myInt; // Implicit conversion
Dim myInt As Integer = 10
Dim myDouble As Double = myInt ' Implicit conversion
$vbLabelText   $csharpLabel

Konwersja jawna, znana również jako rzutowanie, jest wymagana, gdy próbujesz konwertować między niekompatybilnymi typami lub z większych typów na mniejsze. Dokonuje się tego, umieszczając typ docelowy w nawiasach przed wartością do przekształcenia.

double myDouble = 10.5; 
int myInt = (int)myDouble; // Explicit conversion, decimal part is lost
double myDouble = 10.5; 
int myInt = (int)myDouble; // Explicit conversion, decimal part is lost
Imports System

Dim myDouble As Double = 10.5
Dim myInt As Integer = CInt(Math.Truncate(myDouble)) ' Explicit conversion, decimal part is lost
$vbLabelText   $csharpLabel

Reference Types in C

Typy referencyjne w C# działają nieco inaczej niż typy wartościowe. Zamiast przechowywać rzeczywiste dane, zmienna typu referencyjnego przechowuje adres, gdzie wartość jest przechowywana. Innymi słowy, odnosi się do innej lokalizacji w pamięci.

Więc jeśli zmienisz obiekt typu referencyjnego, to wpływa to na inne zmienne. Dzieje się tak, ponieważ zmienna typu referencyjnego automatycznie odzwierciedla zmiany wprowadzone w rzeczywistych danych przechowywanych pod adresem pamięci, do którego się odnosi.

Może to brzmieć nieco skomplikowanie, ale rozłóżmy to na przykład. Załóżmy, że mamy klasę o nazwie Person:

class Person
{
    public string Name { get; set; }
}
class Person
{
    public string Name { get; set; }
}
Friend Class Person
	Public Property Name() As String
End Class
$vbLabelText   $csharpLabel

A następnie tworzymy dwie zmienne typu "referencyjnego" tej klasy:

Person person1 = new Person { Name = "Alice" };
Person person2 = person1;
Person person1 = new Person { Name = "Alice" };
Person person2 = person1;
Dim person1 As New Person With {.Name = "Alice"}
Dim person2 As Person = person1
$vbLabelText   $csharpLabel

Tutaj zarówno person1, jak i person2 wskazują na tę samą lokalizację w pamięci. Jeśli zmienimy person1, person2 odzwierciedli tę zmianę:

person1.Name = "Bob"; 
Console.WriteLine(person2.Name); // Outputs "Bob"
person1.Name = "Bob"; 
Console.WriteLine(person2.Name); // Outputs "Bob"
person1.Name = "Bob"
Console.WriteLine(person2.Name) ' Outputs "Bob"
$vbLabelText   $csharpLabel

Arrays in C

Tablica jest typem referencyjnym, który przechowuje wiele wartości tego samego typu danych. To trochę jak pojemnik, w którym możesz przechowywać kolekcję wartości, wszystkie tego samego typu.

Aby zadeklarować tablicę, najpierw określasz typ danych jej elementów, a następnie używasz nawiasów kwadratowych. Następnie używasz słowa kluczowego new, aby utworzyć tablicę i określić jej długość.

int[] myIntArray = new int[5]; // Array of int type, can hold 5 values
int[] myIntArray = new int[5]; // Array of int type, can hold 5 values
Dim myIntArray(4) As Integer ' Array of int type, can hold 5 values
$vbLabelText   $csharpLabel

Aby uzyskać dostęp do elementów tablicy, używasz indeksu, zaczynając od 0 dla pierwszego elementu.

myIntArray[0] = 10; // Sets the first element of the array to 10
myIntArray[0] = 10; // Sets the first element of the array to 10
myIntArray(0) = 10 ' Sets the first element of the array to 10
$vbLabelText   $csharpLabel

Pamiętaj, że tablice w C# są "typami referencyjnymi", więc zmiany wprowadzone w jednej zmiennej wpłyną na każdą "inną zmienną" odnoszącą się do tej samej tablicy.

Generating PDFs with IronPDF in C

IronPDF to potężna biblioteka dla C#, która pozwala programistom tworzyć, edytować i wyodrębniać treści z PDF-ów. Może być nieocenionym narzędziem przy takich zadaniach jak generowanie raportów czy tworzenie dynamicznych faktur.

Pierwsze kroki z IronPDF

Najpierw trzeba zainstalowac IronPDF. Można to zrobić za pomocą NuGet, popularnego menedżera pakietów dla .NET. Wykonaj następujące polecenie w swojej konsoli menedżera pakietów:

Install-Package IronPdf

Tworzenie PDF z HTML

IronPDF potrafi tworzyć PDF-y z HTML. To całkiem proste:

using IronPdf;

var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf");
using IronPdf;

var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf");
Imports IronPdf

Private Renderer = New ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf")
$vbLabelText   $csharpLabel

Powyższy kod wygeneruje PDF z nagłówkiem "Hello, World!". Zauważ, że kod HTML to po prostu ciąg znaków. W C#, ciąg znaków to typ referencyjny i jest jednym z najczęściej używanych typów w C#.

Typy C# (Jak to działa dla deweloperów) Rysunek 1 - Tekst Hello World

Wnioski

Gratulacje! Zagłębiłeś się w świat Typów C#, rozumiejąc typy wartościowe, typy referencyjne, predefiniowane typy danych i to, jak kształtują one sposób, w jaki piszesz kod. Widziałeś także moc korzystania z bibliotek jak IronPDF.

IronPDF oferuje bezpłatną wersję próbną a licencje na IronPDF zaczynają się od $liteLicensing.

Często Zadawane Pytania

Co oznacza, że C# jest językiem silnie typowanym?

C# jest językiem silnie typowanym, co oznacza, że każda zmienna i każdy obiekt muszą mieć zadeklarowany typ danych, który określa, jakie dane mogą być przechowywane. Zapewnia to bezpieczeństwo typów i spójność podczas korzystania z bibliotek takich jak IronPDF do obsługi danych.

Jak mogę przekonwertować HTML na PDF w języku C#?

Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Możesz również konwertować pliki HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.

Czym są typy wartości w języku C#?

Typy wartości w języku C# przechowują rzeczywiste dane, które zostały im przypisane. Typowe przykłady to liczby całkowite (int), liczby zmiennoprzecinkowe (float i double) oraz wartości logiczne (bool). Typy te są przydatne podczas korzystania z IronPDF do zadań związanych z przetwarzaniem danych.

Jaki jest cel typów referencyjnych w języku C#?

Typy referencyjne w języku C# przechowują adres miejsca, w którym rzeczywiste dane znajdują się w pamięci. Ma to kluczowe znaczenie podczas korzystania z bibliotek takich jak IronPDF, ponieważ zmiany w jednej zmiennej mogą wpłynąć na inną, jeśli odnoszą się one do tych samych danych.

Jak przeprowadzić niejawne przekształcenie typu w języku C#?

Niejawna konwersja typów w języku C# następuje automatycznie, gdy przypisujesz wartość jednego typu do typu zgodnego, który może przechowywać większe wartości. Na przykład konwersja typu int na double odbywa się automatycznie, co może się zdarzyć podczas pracy z IronPDF.

Czy możesz podać przykład jawnej konwersji typów w języku C#?

W języku C# konieczna jest jawna konwersja typów, czyli rzutowanie, podczas konwersji między typami niekompatybilnymi, np. podczas konwersji typu double na int. Odbywa się to poprzez umieszczenie typu docelowego w nawiasach przed wartością. Metodę tę można również zastosować podczas korzystania z IronPDF do specjalistycznej obsługi danych.

Jak wykorzystuje się tablice w języku C#?

Tablice w języku C# są typami referencyjnymi, które mogą przechowywać wiele wartości tego samego typu danych. Deklaruje się je poprzez określenie typu danych, po którym następują nawiasy kwadratowe, a następnie używa się słowa kluczowego new do utworzenia tablicy i określenia jej długości. Koncepcja ta jest przydatna podczas zarządzania dużymi zbiorami danych za pomocą IronPDF.

Jak mogę utworzyć plik PDF z HTML przy użyciu biblioteki w języku C#?

IronPDF to potężna biblioteka C#, która pozwala programistom tworzyć pliki PDF z HTML. Korzystając z metod takich jak RenderHtmlAsPdf, można łatwo generować pliki PDF bezpośrednio z treści HTML.

Jakie są zalety korzystania z IronPDF do obróbki plików PDF w języku C#?

IronPDF zapewnia rozbudowany zestaw funkcji do tworzenia, edycji i wyodrębniania treści z plików PDF w języku C#. Obsługuje konwersję HTML do PDF, dodawanie nagłówków i stopek oraz wiele innych funkcji, co czyni go niezbędnym narzędziem dla programistów pracujących z dokumentami PDF.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie