saxus (statz) | #9, Agyfasz (419) |
1175 | #2a4d | ^ | Idézet | Mon, 27 Jan 2014 23:27:15 +01 |
84.3.*.* | *.catv.pool.telekom.hu |
" akkor miért olyan kurwa lassú az egész?" Nekem nem lassú. (WPF meg egyenesen kurvagyors, főleg a régi megoldásokhoz képest. Mondjuk meg is van támogatva Direct2D-vel). "Azt mégis hogy, hogy csak egy pointer összehasonlítás a két string összehasonlítása? Nem csak előre definiált stringek vannak, egy valahonann beolvasott stringet hogy hasonlít össze csak egy pointerrel? Meg mi van, ha két egyforma stringünk is van?" Nem. .NET-ben minden string immutable, emiatt meg lehetett csinálni, hogy minden string - CLR-enként, tehát akár alkalmazások között - egy közös tárolóba "internáld". Viszont pontosítanom kell magam: nem mindent internál automatikusan. Most nem katpam elő a CLR via C#-ot, de gyors utánanézés alapján nekem úgy tűnik, hogy azokat, amik viszont fordítási időben bekerülnek a rendszerbe, azokat már igen, szóval az előbbi állításom nem minden esetben állja meg a helyét. Viszont két internált stringet összehasonlítani meg tényleg lehet referencia szerint (maga a == operátor illetve az Equals() felüldefiniálására is az az ajánlás, hogy a legelején nézd meg az object.ReferenceEquals()-al.) De persze, te is tudsz kézzel. |