Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kastovanje sa ternarnim operatorom?

[es] :: .NET :: Kastovanje sa ternarnim operatorom?

[ Pregleda: 1439 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

KizaBG
programer

Član broj: 169491
Poruke: 247
*.adsl-4.sezampro.yu.



+1 Profil

icon Kastovanje sa ternarnim operatorom?19.01.2008. u 18:36 - pre 198 meseci
Tri pocetnicka pitanja

1. Kad se referencirate na kontrole na formi, da li koristite 'this' ili ne ? .. znaci, da li treba pisati : this.txtIme.text ili samo txtIme.text ?

2. Kastovanje .. kada koristiti : Convert.ToInt32(kandidatID), a kada (int)KandidatID ?

3. ajde pomoc za sledeci kod. Imam na formi nekoliko polja, sa kojih skupljam podatke i saljem dalje u proceduru.

Jedno od tih polja je kombo box :cbxGodine,koje nema Value member, tj. ne puni se iz koda, vec sam mu samo dodelio vredosti : 2005, 2006 ....

e sad, gde je problem, kada probam da posaljem ovako vrednosti dalje:

IList lista = manager.KandidatSearch(txtIme.Text.Trim(), txtPrezime.Text.Trim(),

cbxGodine.SelectedIndex == 0 ? null: cbxGodine.SelectedItem, <<<<<< ovo treba kastovati

cbxStrucnaSprema.SelectedIndex == 0 ? null : Convert.ToInt32(cbxStrucnaSprema.SelectedValue)

pukne mi kod, zato sto procedura iza ceka vrednosti u ovom formatu :

public IList Search(string ime, string prezime, int? godineZivota, int? strucnaSpremaID)

pokusao sam sa

cbxGodine.SelectedIndex == 0 ? null : (int)cbxGodine.SelectedItem

kao i :

cbxGodine.SelectedIndex == 0 ? null : Covert.ToInt32(cbxGodine.SelectedItem)

Medjutim, debugger mi podvuce plavom linijom ovu 'null' vrednost, i kaze da ne postoji implicitna konverzija izmedju null i int

pa me zanima, zasto ukljucuje null u konverziju, kada ja kastujem sa druge strane uslova ?

pozdrav i hvala za savet
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Kastovanje sa ternarnim operatorom?19.01.2008. u 21:06 - pre 198 meseci
1. this je implicitno i generalno ti nije neophodno, uglavnom ce ti trebati samo ako je element klase istog imena kao lokalni parametar u metodu da bi deklarisao ispravan scope:

Code:

class zzz 
{
    TextBox mojTextBox
    void metod (string mojTextBox)
    {
        this.mojTextBox.Text = mojTextBox;
    }
}


2. castovanje moze izmedju istorodnih tipova (npr int u byte) kad se gubi na preciznosti ili znaku (u suprotnom bi ti prosao i implicitni cast), kao i za pre-referenciranje objekta iz jedne klasu u drugu polimorfnu ili u podrzani interfejs, generalno kad ne postoji nikakva konverzija podataka vec se samo ti podaci posmatraju pod drugim tipom.
Konverzija ti treba u ostalim situacijama medju raznorodnim tipovima, a za koje postoji konverzioni "put" (npr int u float, ili string u int ako string sadrzi broj).

3. null je ukljucen u konverziju zato sto je inline case koji si napisao moze da vrati dva razlicita tipa, null i int, a ne postoji implicitni cast iz null u int, samo iz null u int?. Nijedan expression ne moze da bude dvoznacan tj da ima sansu da vrati dva razlicita tipa, a int i int? su razliciti tipovi. Probaj sledece:

Code:

cbxGodine.SelectedIndex == 0 ? null : (int?)Covert.ToInt32(cbxGodine.SelectedValue)

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

KizaBG
programer

Član broj: 169491
Poruke: 247
*.adsl-4.sezampro.yu.



+1 Profil

icon Re: Kastovanje sa ternarnim operatorom?19.01.2008. u 21:28 - pre 198 meseci
Super !

ovo je resilo problem

cbxGodine.SelectedIndex == 0 ? null : (int?)Covert.ToInt32(cbxGodine.SelectedValue

Pozdrav i hvala puno za pomoc !
 
Odgovor na temu

[es] :: .NET :: Kastovanje sa ternarnim operatorom?

[ Pregleda: 1439 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.