CentrumXP.pl » Witamy
CentrumXP.pl
 
Szukaj
Subskrypcja
Powiadomienie e-mailem o nowościach na CentrumXP.pl:
E-mail: Zapisz
Czy zamierzasz pobrać Internet Explorer 9?


CentrumXP.pl » Microsoft .NET » Kurs C#, cz. I » Dodaj do ulubionych Dodaj do ulubionych   Dodaj do ulubionych Wersja do wydruku

10. Typy proste i referencyjne

Autor: Daniel Celeda    Opublikowano: 31 stycznia 2006    Odsłon: 93823    »Skomentuj...
Strona:
Zobacz również:

01. "Programowanie" - z czym to się je?

02. Programowanie obiektowe

03. Do czego potrzebne jest nam Visual Studio 2005

04. Konfiguracja i obsługa C# 2005 Express Edition

05. Tworzenie solution i nowych projektów

06. Klasy i obiekty

07. Tworzenie oraz inicjalizacja obiektów

08. Operatory arytmetyczne

09. Porozmawiajmy o „stringach”

11. Wartości logiczne

12. Inne operatory logiczne

13. Instrukcje iteracyjne (tzw. pętle) - cz. I

14. Instrukcje iteracyjne (tzw. pętle) - cz. II

15. Tablice

16. Kolekcje

17. Typy generyczne (generics)

18. Przestrzenie nazw (namespaces)

19. Modyfikatory dostępu

20. Metody statyczne oraz metody instancyjne

»Uzyskaj pomoc na forum

Proste typy danych w C#

Warto poznać kilka z wbudowanych prostych typów danych w C#.

bool – typ logiczny, oznaczający prawdę („true”) lub fałsz („false”), używany do operacji logicznych,
short
– 16-bitowa liczba całkowita,
int
– 32-bitowa liczba całkowita,
long
– 64-bitowa liczba całkowita,
float
– 32-bitowa liczba zmiennoprzecinkowa,
double
– 64-bitowa liczba zmiennoprzecinkowa,
char
– pojedynczy znak zapisany w formacie Unicode,
string
– łańcuch znakowy, zbiór znaków w formacie Unicode.

Stałe

Stałe to dane, których wartości nie możemy zmieniać. W pewnym uproszczeniu możemy sobie wyobrazić, że są to zmienne, których wartości są zawsze takie same. Ze stałymi związane jest słówko „const”, które definiuje nam stałą.

class KlasaGlowna
{
    public const double PI = 3.14;
    public const double E = 2.74;

    static void Main()
    {
        System.Console.WriteLine("Liczba PI ma warość: " + PI);
        System.Console.WriteLine("Liczba e ma wartość: " + E);
        System.Console.ReadLine();
    }
}

Wygodniej jest stworzyć klasę ze stałymi, którą możemy wykorzystać w wielu innych klasach (a nawet programach).

class Liczby
{
    public const double PI = 3.14;
    public const double E = 2.74;
}

class
KlasaGlowna
{
    static void Main()
    {
        System.Console.WriteLine("Liczba PI ma warość: " + Liczby.PI);
        System.Console.WriteLine("Liczba e ma wartość: " + Liczby.E);
        System.Console.ReadLine();
    }
}

Ponieważ „PI” oraz „E” są stałymi, nie musimy tworzyć obiektów klasy „Liczby” – wartości tych stałych będą zawsze dostępne i niezmienne.
A oto wynik działania obydwu powyższych programów.


«Wstecz 1 2 3 

Aktualna ocena to: 4,13

Oceń artykuł...
Porażka Kiepski Taki Sobie Dobry Super!

Tagi:  

A teraz:    Dodaj do ulubionych Dodaj do ulubionych    Wydrukuj Wydrukuj    Wyślij link znajomemu Wyślij link znajomemu    Skomentuj Skomentuj

Komentarze do 10. Typy proste i referencyjne

Dodaj komentarz»

Shreeve 27 lipca 2006, 7:54

Kod działa, ale zastanawia mnie, w jaki sposób mamy dostęp do zmiennych klasy, bez tworzenia jej instancji, lub bez oznaczania jej jako static, tym bardziej, że jest dostęp poprzez nazwę klasy?

nj 29 lipca 2006, 11:40

@Shreeve: "KlasaPomocnicza obiekt1 = new KlasaPomocnicza(); KlasaPomocnicza obiekt2 = new KlasaPomocnicza();" Te linie tworzą dwie nowe instancje klasy KlasaPomocnicza: obiekt1 i obiekt2... Dzięki temu, że zmienna x NIE jest statyczna, każda instancja przechowuje swoją wartość iksa, do którego dostęp mamy przez nazwę instancji, np. obiekt1.x - mam nadzieję, że rozjaśniłem. Pozdrawiam :)

Wujek 5 sierpnia 2006, 20:48

Błąd w kodzie; pierwsze okno int x = 2; int y = x; x = x + 8; powinno być: int x = 2; int y = x; y = x + 8;

Ciocia 10 sierpnia 2006, 12:38

Sam jestes błąd w kodzie

Wujek 10 sierpnia 2006, 17:01

Ty ciotka nie podskakuj bo ci zaraz zrobie masowanie jąder

kostii 11 sierpnia 2006, 11:56

nie błąd w kodzie tylko źle zrozumiałes lekcje

Kazik 14 sierpnia 2006, 14:24

Tak jest!!! Pała!!! Źle zrozumiałeś :) lol

Wujek 18 sierpnia 2006, 17:09

Przepraszam wszystkich za moje wybryki na forum, oczywiście, że jest bład z mojej strony. Pozdro. Po prostu zwiększamy x'a o 8

bartek 21 sierpnia 2006, 16:33

Cytat: Stałe to dane, których wartości nie możemy zmieniać. W pewnym uproszczeniu możemy sobie wyobrazić, że są to zmienne, których wartości są zawsze takie same. Koniec cytatu. Jeżeli stała to nie zmienna!!! Cytat: W C#, tak jak w innych językach obiektowych, mamy typy proste i referencyjne. Koniec cytatu. Tak w C# mamy typy proste, javie też, ale nie jest to regułą w językach obiektowych!!!!!!!

yaro27 11 lipca 2008, 15:26

String typem prostym?? Raczej referencyjnym. Poniższy link wszystko wyjaśnia: http://www.microsoft.com/poland/developer/net/podstawy/clr.mspx

nie 16 września 2008, 14:19


carck3r 1 maja 2009, 21:35

Błąd - string jest typem referencyjnym. Dowód: http://msdn.microsoft.com/en-us/library/490f96s2.aspx

Programista C++ 23 lipca 2009, 10:49

Cytat:
określiliśmy, że obydwa obiekty wskazują na to samo miejsce<br />w pamięci, a więc każda zmiana danych wskazywanych przez jeden z obiektów,<br />powoduje zmianę danych wskazywanych przez drugi

 
Chyba szkoda czasu na ten kurs. Obiekty na coś wskazują? obiekt1 i obiekt2 to nie obiekty tylko referencje do obiektów. A tak BTW po wykonaniu linii biekt2 = obiekt1; w pamięci nie ma już dwóch obiektów tylko jeden, bo drugi zostanie usunięty przez GC. Żenada.<br />

DOŚWIADCZONY programista C# 24 września 2009, 10:49

Cytat: "Do typów prostych należą dane liczbowe takie jak: „int”, „float”, itd., a także typy wyliczeniowe oraz struktury („string” to struktura, a więc jest typem prostym)" Bzdura! Jak już kilka osób wpomniało string jest oczywiście typem referencyjnym jednak jego zachowanie zostało zaimplementowane tak jak struktury, tj. przeciążony został m. in. operator przypisania, który tworzy nowy obiekt string"a. Ponadto największym błędem tego artykułu jest stwierdzenie, że typami prostymi są również wypy wyliczeniowe i struktury (!). Typy proste to NIEKTÓRE struktury, dla których istnieją aliasy, np. dla struktury System.Int32 istnieje alias int, dla System.Double - double, dla System.Int64 - long itp. Ponadto typy proste rządzą się swoimi zasadami: http://msdn.microsoft.com/en-us/library/aa691144(VS.71).aspx

DOŚWIADCZONY programista C# 24 września 2009, 10:55

I jeszcze jedno - autorowi tego artykułu radzę zdobycie większego doświadczenia w programowaniu w platformie .NET przed napisaniem kolejnego artykułu. Wprawdzie minęło już sporo czasu od publikacji tego artykułu jednak to tyczy się każdego innego zagadnienia, gdyż wiele niedoświadczonych osób zagląda tutaj i bierze ten arykuł za pewnik opowiadając innym podobne brednie. Wydaje misię, że należy rozpatrzyć usunięcie tego artukułu lub poprawienie go przez doświadczoną osobę.

nos 2 listopada 2009, 15:45

Dla "DOŚWIADCZONEGO programisty C#" być może są tu jakieś niścisłości, ale dla początkującego, nie ma znaczenia, czy nazwywa się to tak, czy siak. Akurat w tym przypadku chodzi o przyswojenie tych pojeć, a nie o nazwanie ich. To bardzo początkujący kurs i lepiej go nie usuwajcie (błędy można poprawić :)).

StWolf 6 listopada 2009, 11:26

Witam Wlasnie korzystalem z tego artykulu, cos mi nie pasowalo i dzieki niebiosom przeczytalem komentarze... Z mojego punktu widzenia, taki artykul dyskwalifikuje w nauce jezyka! Powód to prawdziwe informacje z zaszytymi powaznymi bledami w tutku, ktore dla swiezaka ( jak ja ;"> ) zapadaja dlugo w pamieci, trudno je potem naprostować! Bardzo mi przykro zolta kartka dla twórcy się należy.

Ryszard 26 stycznia 2010, 13:44

Kurs jest niezwykle prosty, a zarazem merytoryczny, bardzo czytelny i zrozumiały. Czuje się, że Autor jest bardzo dobrym programistą a mimo to nie "cwaniakuje" popisując się swoją wiedzą. Dziękuję!

wiki 12 września 2010, 13:58

a ja już się poddaję, dalej nie idę, jak dla mnie jest  lekko chaotyczny, już nie trawię tego, kurs napisany 5 lat temu, teraz mammy 2010r, czy nic sie nei zmieniło do tego czasu w C# i nei powinno być zaktualizowane???

nie 25 listopada 2010, 10:11

nie ten poziom :D

marco 27 listopada 2010, 0:00

Czy w pierwszym przykładzie nie mamy klasycznego wycieku pamięci? Oczywiście w tak trywialnym przykładzie to nie problem ale czemu tego uczyć? Nie lepiej było napisać tak? KlasaPomocnicza obiekt1 = new KlasaPomocnicza(); KlasaPomocnicza obiekt2;

Krzys 1 marca 2011, 11:56

marco, jak już sygnalizujesz jakiś problem to może opisałbyś go dokładniej? Wiele osób pisze tutaj, że kurs jest kiepski, że trzeba go wywalić, a może po prostu poprawiajcie błędy, albo napiszcie swój idealny tutorial?

Tomcio 7 sierpnia 2011, 20:14

Autorowi może chodzilo o inna liczbe (wlasna), ale liczba e to w przyblizeniu 2,71, a nie 2,74:)


Dodaj swój komentarz

»Zasady udzielania komentarzy

Autor:  
Komentarz:
Dodaj komentarz
© 2012 Onex Group
Onex Group O Onex Group  |  O CentrumXP.pl  |  Kontakt  |  Reklama
Nasze serwisy: CentrumXP.plXboxSpot.pl  |  Jama Mastaha