Henselmanuv seznam IT otázek pro pohovory VI.
Dneska bude trochu změna, jelikož když jsem si projížděl další otázky z Henselmanova seznamu, tak jsem shledal některé naprosto nezajímavé. Netvrdím, že nejsou důležité, ale kdo se dnes ještě vrtá v COMech? Moc lidí to nebude. Takže otázky týkající se COM jsou z kola venku. Spíše se zaměřím na otázky, které jsou zajímavé z hlediska přijímacích pohovorů. Takže to bude teď trochu na přeskáčku.
26. Co je špatně na DateTime.Parse(myString);?
V podstatě nic, pokud je vám jedno v jakém formátu bude string převeden na datum. Pokud nespecifikujete formát datumu v řetězci, tak hrozí třeba záměna měsíců a dnů viz. US formátování MM/dd/yyy oproti českému formátování dd/MM/yyy. Pak samozřejmě dojde k nekorektnímu výstupu a padne to na vyjímku, když se bude snažit formátovat 13 den jako měsíc.
Ideálně použijte DateTime.ParseExact() místo DateTime.Parse().
27. Napište standardní lock konstrukci s dvojitou kontrolou.
Lock s dvojitou kontrolou se používá v prostředí, kde se pracujete s více vlákny (Threads). Použije se v případě, kdy chcete zaručit funkčnost locku i mezi více vlákny.
public class CacheStore {
private static volatile CacheStore _instance;
public static CacheStore Instance{
get{
if (instance == null){ // Check1
lock(typeof(CacheStore){ // Check2
if (instance == null)
instance = new CacheStore();
}
}
return instance;
}
}
}
28. Co je to FullTrust? Mají assemblies v GACu status FullTrust?
Pokud knihovna má status FullTrust, tak kód v knihovně může používat všechny objekty a funkce Net frameworku. Obšírný článek o FullTrust je v angličtině na tomto blogu.
Knihovny nainstalované v GACu mají status FullTrust jako defaultní vlastnost.
29. Co je výhodou použití atributů specifikující Security permissions ve vašem kódu?
a - administrátor může pomocí utility PermView zjistit požadovaná přístupové oprávnění
b - preventivně zabrání použití komponenty mimo definované rozsah přístupových práv
c - lepší řízení zamítnutí přístupu, Výstupem není jen všeobecná hláška "Denied Permission".
30. Co provede tento příkaz? gacutil /l|find /i "about"
gacutil - instaluje knihovnu do GACu
gacutil /l - vypíše seznam knihoven v GACu
znak | (roura) - umožní zpracovat výstup z předchozího příkazu
find /i "about" - najde všechny řádky obsahující slovo "about" a zobrazí je