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