Tietotyypit C#:ssa: Double, Kokonaisluku, Float, Char

⚡ Älykäs yhteenveto

C#:n tietotyypit määrittelevät muuttujan sisältämien arvojen tyypin, jotka vaihtelevat kokonaisluvuista ja liukulukuista totuusarvoihin ja merkkijonoihin, ja ne määrittävät, kuinka paljon muistia kukin muuttuja varaa ohjelman suorituksen aikana.

  • 🔢 Kokonaislukutyypit: Int32-avainsana (int) tallentaa kokonaislukuja, kuten 10, 20 tai 30, kiinteälle muistialueelle.
  • 🔣 Liukulukujen tyypit: double- ja float-luvut sisältävät desimaaliarvoja, kun taas desimaalit tarjoavat tarkempaa tarkkuutta taloudellisiin laskelmiin.
  • ☑️ Totuusarvoinen tyyppi: Boolen avainsana tallentaa vain arvon true tai false ja ohjaa ehdollista logiikkaa.
  • 🔤 Tekstityypit: char sisältää yhden merkin ja string tallentaa merkkijonon tekstinä.
  • 🧩 Arvo vs. viitearvo: Arvotyypit tallentavat tiedot suoraan, kun taas viittaustyypit, kuten merkkijono, tallentavat muistiosoitteen.
  • 🤖 AI-apu: GitHub Copilot ja ML.NET tuovat koodiehdotukset ja koneoppimisen C#-tyyppien käsittelyyn.

Tietotyypit C#:ssa

Mitä tietotyypit ovat C#:ssa?

C#-kielen mukana tulee joukko perustietotyyppejä. Näitä tietotyyppejä käytetään luomaan arvoja, joita käytetään sovelluksessa. Tutkitaan perustietotyyppejä, jotka ovat saatavilla C#:ssa. Jokaisessa esimerkissä muokkaamme vain Program.cs-tiedostomme päätoimintoa.

1) Kokonaisluku

Kokonaislukutietotyyppejä käytetään lukujen käsittelyyn. Tässä tapauksessa luvut ovat kokonaislukuja, kuten 10, 20 tai 30. C#:ssa tietotyyppi on merkitty Int32 avainsana. Alla on esimerkki siitä, kuinka tätä tietotyyppiä voidaan käyttää. Esimerkissämme määritämme Int32-muuttujan nimeltä num. Määritämme sitten muuttujalle kokonaisluvun arvon ja näytämme sen sitten vastaavasti.

Kokonaislukutietotyypit C#:ssa

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   Int32 num=30;
   Console.Write(num);  
   
   Console.ReadKey();
  }
 }
}

Code Selitys:-

  1. Int32-tietotyyppi on määritetty ilmaisemaan kokonaislukumuuttuja, jonka nimi on num. Tämän jälkeen muuttujalle annetaan arvo 30.
  2. Lopuksi console.write-funktiota käytetään numeron näyttämiseen konsoliin.

Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, seuraava tulos näytetään.

lähtö:

Kokonaislukutietotyypit C#:ssa

Tulosteesta näet selvästi, että kokonaisluku-muuttuja nimeltä num näytettiin konsolissa

2) Double

Kaksinkertaista tietotyyppiä käytetään desimaalien käsittelyyn. Tässä tapauksessa luvut ovat kokonaislukuja, kuten 10.11, 20.22 tai 30.33. C#:ssa tietotyyppi merkitään avainsanalla "Double". Alla on esimerkki tästä tietotyypistä.

Esimerkissämme määritämme kaksoismuuttujan nimeltä num. Annamme sitten a Double arvo muuttujaan ja näytä se sitten vastaavasti.

Double Tietotyypit C#:ssa

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   double num=30.33;
   Console.Write(num); 
   
   Console.ReadKey();
  }
 }
}

Code Selitys:-

  1. Kaksoistietotyyppi määritetään kaksoistyypin ilmoittamiseksi muuttuja nimeltään num. Tämän jälkeen muuttujalle annetaan arvo 30.33.
  2. Lopuksi console.write-funktiota käytetään numeron näyttämiseen konsoliin.

Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, seuraava tulos näytetään.

lähtö:

Double Tietotyypit C#:ssa

Tulosteesta näet selvästi, että kaksoismuuttuja nimeltä num näytettiin konsolissa

3) Boolen

Boolen tietotyyppiä käytetään toimimaan loogisten arvojen kanssa totta ja tarua. C#:ssa tietotyyppi merkitään Boolen avainsanalla. Alla on esimerkki tästä tietotyypistä, jota voidaan käyttää.

Esimerkissämme määritämme Boolen muuttujan nimeltä "status". Määritämme sitten muuttujalle loogisen arvon ja näytämme sen sitten vastaavasti.

Boolen tietotyypit C#:ssa

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
  { 
   static void Main(string[] args) 
   {
    Boolean status=true;
    Console.Write(status);
    
    Console.ReadKey();
   }
  }
}

Code Selitys:-

  1. Boolen tietotyyppi on määritetty ilmoittamaan Boolen muuttuja nimeltä "status". Muuttujalle annetaan sitten arvo true/false.
  2. Lopuksi console.write-funktiota käytetään näyttämään Boolen arvo konsolille.

Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, tulos näytetään.

lähtö:

Boolen tietotyypit C#:ssa

Tulosteesta näet selvästi, että Boolen muuttuja, joka on yhtä suuri kuin tosi, näytettiin konsolissa

4) merkkijono

String-tietotyyppiä käytetään String-arvojen käsittelyyn. C#:ssa tietotyyppi merkitään avainsanalla "String". Alla on esimerkki tästä tietotyypistä.

Esimerkissämme määritämme merkkijonomuuttujan nimeltä 'message'. Määritämme sitten muuttujalle merkkijonon arvon ja näytämme sen sitten vastaavasti.

Merkkijonotietotyypit C#:ssa

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class program
 {
  static void Main(string[] args)
  {
   String message="Hello";
   Console.Write(message);
   
   Console.ReadKey();
  }
 }
}

Code Selitys:-

  1. Tietotyyppi Merkkijono on määritetty ilmoittamaan merkkijonomuuttuja nimeltä sanoma. Muuttujalle annetaan sitten arvo "Hei".
  2. Lopuksi console.write-funktiota käytetään merkkijonon arvon näyttämiseen konsoliin.

Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, tulos näytetään.

lähtö:

Merkkijonotietotyypit C#:ssa

Tulosteesta näet selvästi, että String-muuttuja nimeltä sanoma näytettiin konsolissa

Täydellinen luettelo C#-tietotyypeistä

Yllä olevat neljä esimerkkiä kattavat yleisimmät tyypit, mutta C# tarjoaa täyden valikoiman sisäänrakennettuja arvotietotyyppejä. Jokainen tyyppi varaa kiinteän määrän muistia ja hyväksyy tietyn arvoalueen, joten pienimmän tyypin valitseminen, joka turvallisesti sopii tietoihisi, pitää ohjelman tehokkaana.

Tietotyyppi Koko Alue / Descriptioni
tavu 1 tavua 0 ja 255
lyhyt 2 tavua -32,768 ja 32,767
kokonaisluku (Int32) 4 tavua -2,147,483,648 ja 2,147,483,647
pitkä 8 tavua Hyvin suuret kokonaisluvut (±9.2 kvintiljoonaa)
kellua 4 tavua Desimaalit noin 6–7 numeron tarkkuudella
kaksinkertainen 8 tavua Desimaalit noin 15–16 numeron tarkkuudella
desimaalin 16 tavua Tarkat desimaaliluvut (28–29 numeroa) rahalle
sotavaunut 2 tavua Yksi Unicode-merkki
Bool 1 tavua totta vai tarua

Näiden arvotyyppien ohella merkkijonotyyppi on yleisimmin käytetty viittaustyyppi ja tallentaa minkä tahansa pituisen merkkijonon. Sopivan tyypin valitseminen estää ylivuotovirheet ja tarpeettoman muistin käytön.

Arvotyypit vs. viitetyypit C#:ssa

Jokainen C#-tietotyyppi kuuluu kahteen ryhmään: arvotyyppeihin ja viittaustyyppeihin. Tämä erottelu määrittää, miten C# tallentaa tiedot ja miten muuttuja käyttäytyy, kun kopioit sen tai välität sen metodille.

  • Arvotyypit: Nämä tallentavat varsinaisen datan suoraan, yleensä pinoon. int, double, bool, char, ENUM, ja struct ovat arvotyyppejä. Yhden muuttujan osoittaminen toiseen kopioi arvon, joten kaksi muuttujaa pysyvät toisistaan ​​riippumattomina.
  • Viitetyypit: Nämä tallentavat viittauksen (muistiosoitteen), joka osoittaa keossa olevaan dataan. merkkijono-, objekti-, taulukko- ja luokkainstanssit ovat viittaustyyppejä. Viittausmuuttujan kopioiminen kopioi vain osoitteen, joten molemmat muuttujat jakavat saman objektin.

Arvotyyppinen muuttuja ei voi koskaan olla null, koska se sisältää aina arvon, kun taas alustamattoman viittaustyypin oletusarvo on null. Tämän eron ymmärtäminen auttaa sinua ennustamaan, miten datan muutokset kulkevat ohjelman läpi.

Tyyppimuunnos C#:ssa

C#:ssa täytyy usein siirtää arvo tietotyypistä toiseen, esimerkiksi muuntaa käyttäjän syöte, joka on aina tekstiä, numeroksi. Tätä prosessia kutsutaan tyyppimuunnokseksi, ja se tapahtuu kolmella päätavalla.

  • Implisiittinen muunnos: Kääntäjä muuntaa automaattisesti, kun ei ole datan menetyksen riskiä, ​​kuten esimerkiksi kokonaisluvun (int) lisääminen tupla-arvoon. Mitään erityistä syntaksia ei tarvita.
  • Eksplisiittinen muuntaminen (casting): Kohdetyyppi sijoitetaan sulkeisiin, esimerkiksi (int)myDoubleMuuntaminen kokonaisluvuksi voi menettää dataa — double-luvun muuntaminen kokonaisluvuksi poistaa desimaaliosan — joten otat riskin tietoisesti.
  • Avustavat menetelmät: Convert-luokka (Convert.ToInt32) ja kunkin tyypin Parse-metodi (int.Parse) muuttavat merkkijonot numeroiksi, kun taas ToString muuttaa arvot takaisin luettavaan muotoon.

Oikean muunnoksen valitseminen pitää tiedot oikeina ja estää suorituksenaikaisia ​​virheitä, kun sijoituksen kummallakin puolella olevat tyypit eivät vastaa toisiaan.

UKK

float, double ja decimal tallentavat kaikki desimaalilukuja, mutta eroavat toisistaan ​​tarkkuuden ja koon suhteen. float käyttää 4 tavua noin 7 numeroa, double käyttää 8 tavua noin 15 numeroa ja decimal käyttää 16 tavua erittäin tarkkojen taloudellisten arvojen tallentamiseen.

Niillä ei ole todellista eroa. int on C#-alias .NET System.Int32 -tyypille, joten int ja Int32 käänntyvät täsmälleen samaksi asiaksi. Useimmat kehittäjät kirjoittavat int-tyypin lyhyyden vuoksi, kun taas Int32 tekee pohjana olevan kehystyypin eksplisiittiseksi.

merkkijono on viittaustyyppi, koska se tallentaa viittauksen keossa olevaan merkkidataan. Se kuitenkin käyttäytyy kuin arvotyyppi yhdessä suhteessa: merkkijonot ovat muuttumattomia, joten jokainen muutos luo uuden merkkijono-objektin vanhan muokkaamisen sijaan.

Nullittava tyyppi sallii arvotyypin, kuten int tai bool, sisältää myös null-arvon, joka kirjoitetaan loppuun kysymysmerkillä, esimerkiksi int?. Se on hyödyllinen valinnaisille data- ja tietokantakentille, joissa puuttuva arvo on esitettävä erikseen nollasta tai false-arvosta.

Char sisältää täsmälleen yhden Unicode-merkin ja käyttää yksittäisiä lainausmerkkejä, kuten 'A'. Merkkijono sisältää nollan tai useamman merkin sarjan ja käyttää kaksoislainausmerkkejä. Char on arvotyyppi, kun taas merkkijono on viittaustyyppi.

var päättelee muuttujan tyypin käännösaikana, ja tämä tyyppi korjataan sitten täydellä IntelliSense-tuella. dynamic siirtää tyyppitarkistuksen ajonaikaiseen vaiheeseen, joten tyyppivirheet ilmenevät vasta suorituksen aikana. Käytä var-muuttujaa turvallisuuden vuoksi ja dynamic-muuttujaa joustavissa, myöhässä tapahtuvissa skenaarioissa.

Kyllä. GitHub Copilot ehdottaa tyyppien määrittelyjä, muunnoksia ja mallipohjia Visual Studiossa ja Visual Studio CodeSe voi suositella sopivaa numeerista tyyppiä tai luoda jäsennyskoodia, mutta sinun kannattaa tarkistaa sen tuloste, koska ehdotukset voivat olla epätarkkoja tai aiheuttaa ylivuoto-ongelmia.

Kyllä. ML.NET yhdistää C#-tietotyypit malliominaisuuksiin käyttämällä numeerisia tyyppejä, kuten float ja double, harjoitusdatalle ja merkkijonoa tekstille. Vahvasti tyypitetyt tietoluokat kuvaavat jokaisen sarakkeen, joten koneoppimismallit integroituvat luonnollisesti C#-sovelluksiin.

Tiivistä tämä viesti seuraavasti: