Avatar billede driis Nybegynder
16. marts 2006 - 16:16 Der er 1 kommentar og
1 løsning

C# casts - is vs as

Antag følgende funktionelt identiske kodestumper:

foreach(object o in MyObjectCollection)
{
  if ( o is MyClass )
    ((MyClass)o).DoStuff();
}

--- versus ---

foreach(object o in MyObjectCollection)
{
  if ( o is MyClass )
    (o as MyClass).DoStuff();
}

Hvilken version vil være at foretrække ? Her tænker jeg på, om der er nogen performance mæssig forskel på C-style cast eller "as" keywordet, eller om der er andre grunde til at foretrække den ene fremfor den anden ? Jeg ved at "as" er et safe cast, dvs. der blot returneres null fremfor at en exception kastes; men det burde jo være irrelevant her, eftersom der først testes om objektet er af den ønskede type.
Avatar billede arne_v Ekspert
16. marts 2006 - 18:11 #2
Det betryder jo ikke noget i den stump kode. Generelt ville nok bruge traditionel
cast. Praktisk fordi det er den syntax man bruger i C++ og Java ogsaa. Principielt
fordi jeg mener at det er bedst at faa en exception.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester