webForumDet fria alternativet

Vad betyder denna syntax?

3 svar · 430 visningar · startad av P

PMedlem sedan jan. 20012 204 inlägg
#1
                Person p = new Person();

                p.Id = (DBNull.Value == record["PersonID"]) ?
                    0 : (int)record["PersonID"];

Har aldrig sett att man kan använda sig av "?" och ":". Vad betyder det?

cyprysMedlem sedan dec. 20003 563 inlägg
#2

var = (Sanningsvillkor) ? vars värde om Sanningsvillkoret = True : vars värde om False;

ex

v = (1) ? 42 : 8
// v är 42

v = (0) ? 42 : 8
// v är 8

v = (64==64) ? 42 : 8
// v är 42

Helt enkelt en mysig förkortning av

if (true) v = a
else v = b
tydalMedlem sedan juni 20034 013 inlägg
#3

Det där med ? och : kommer från C vilket C# bygger på.

C# betyder för övrigt C + 0,5 medan C++ betyder C + 1.

ChoronzonMedlem sedan aug. 20011 346 inlägg
#4

Kallas allmänt för "Ternary operator"

ex. http://weblogs.asp.net/dburke/archive/2004/03/26/97195.aspx

132 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)