METODSKA JEDINICA:



KONVERZIJE. METODE KLASE CONVERT

Uvodni deo časa:

1. Šta je konverzija tipa podataka?

2. Koje su moguće konverzije tipa?

3. Kada se vrši implicitna konverzija?

4. Kada se vrši eksplicitna konverzija?

5. Kada se gubi na tačnosti predstavljanja podataka?

Centralni deo časa:

Prevođenje podataka iz jednog u drugi tip može se u programskom jeziku C#, kao i u jezicima C i C++, vršiti automatski (implicitna konverzija) ili pod kontrolom programera (eksplicitna konverzija).

Osnovna ideja implicitne konverzije u jeziku C# je da se ne gube informacije i da se sačuva preciznost podataka, pa je zbog toga moguća samo implicitna konverzija iz užeg u širi tip (npr. tip int se može konvertovati samo u tip long, float, double ili decimal, a tip decimal se ne može konvertovati ni u jedan drugi).

Eksplicitnom konverzijom programer, dodatnim kodom, od kompajlera zahteva određenu konverziju. Eksplicitna konverzija se ostvaruje korišćenjem operatora cast ili korišćenjem klase Convert.

Tabela dozvoljenih implicitnih i eksplicitnih konverzija:

|tip |može se imlicitno konvertovati u tip |može se eksplicitno konvertovati u tip |

|int |long, float, double, decimal |sbyte, byte, short, ushort, uint, ulong, char |

|uint |long, ulong, float, double, decimal |sbyte, byte, short, ushort, int, char |

|long |float, double, decimal |sbyte, byte, short, ushort, int, uint, ulong, char |

|ulong |float, double, decimal |sbyte, byte, short, ushort, int, uint, long, char |

|char |ushort, int, uint, long, ulong, float, double, decimal |sbyte, byte, short |

|float |double |sbyte, byte, short, ushort, int, uint, long, ulong, char, decimal |

|double |float, double, decimal |sbyte, byte, short, ushort, int, uint, long, ulong, char, float, decimal |

|decimal |/ |sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double |

Primer: int a;

double b=12.78;

a=b;

Pri pokušaju prevođenja dobijamo poruku o grešci: Cannot imlicitly convert type ‘double’ to ’int’

Da bi se ostvarila uspešna dodela vrednosti tipa double promenljivoj tipa int, neophodno je izvršiti eksplicitnu konverziju na sledeći način:

a=(int) b; // a=12;

Pri konverziji realnog u celobrojni tip dolazi do odsecanja decimalnog dela podatka. Prema tome, korišćenjem eksplicitne konverzije može doći do gubitka informacija, tj. sužavanja podatka.

Primer: int x=212;

string s=(string)x;

string p=”123”;

int y=(int)p;

Prevođenjem koda dobili bi izveštaj o sledećim greškama: Cannot convert type ‘int’ to ‘string’

Cannot convert type ‘string’ to ‘int’

Korišćenjem statičkih metoda klase Convert, podaci osnovnog tipa se konvertuju u drugi osnovni tip. Svaki od metoda konverzije poziva se tako što se navodi metoda (Convert.ToInt32, Convert.ToUInt32, Convert.ToInt64, Convert.ToUInt64, Convert.ToSingle, Convert.ToDouble, Convert.ToDecimal, Convert.ToChar, Convert.ToString, Convert.ToBoolean), a zatim u zagradama izraz čija se vrednost konvertuje.

Primer: int x=212;

string s=Convert.ToString(x);

string p=”123”;

int y=Convert.ToInt32(p);

Konverzija pomoću klase Convert uspešno se izvršava samo kada je moguće podatak jednog tipa konvertovati u drugi. Recimo, eksplicitna konverzija Convert.ToInt32 (p) uspešno će se izvršiti samo ako string p predstavlja ispravno zapisan ceo broj u odgovarajućem opsegu.

Eksplicitna konverzija je moguća u još dva slučaja: sve strukture, kojima su predstavljeni osnovni tipovi podataka, sadrže metod ToString() kojim je omogućeno prevođenje vrednosti osnovnog tipa u string!!! Osim toga, sve strukture numeričkih tipova sadrže statički metod Parse, pomoću koga se argument tipa string tog metoda pretvara u tip strukture nad kojom se primenjuje.

Primer: int x=212;

string s=x.ToString();

double a=-345.239801;

string p=a.ToString();

int a = int.Parse(textBox1.Text);

double b = double.Parse(textBox2.Text);

float c = Convert.ToSingle(a + b);

textBox3.Text = "Rezultat je " + c;

Završni deo časa:

1. Kada je moguća implicitna konverzija u programskom jeziku C#?

2. Kako se sve može koristiti eksplicitna konverzija?

3. Koje su metode klase Convert za konvertovanje broja u string i obrnuto?

4. Kada će primenom metode Parse za pretvaranje stringa u broj doći do greške?

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches