# NPRG038 zk 16.6.2010

<{ForumPost(poster="Santhos", timestamp=2010-06-16 00:52:30)}>
Cau vsem ucastnikum zajezdu,  
kdyby nekdo chtel pokecat o zkousce - myslim tim o probrane latce, remoting, linq, ado, wpf, wtf, apod. - tak davam sraz v 10 v rotunde :)
<{/ForumPost}>

<{ForumPost(poster="Santhos", timestamp=2010-06-16 11:35:39)}>
Very amusing...  
  
1] "\uNeco" == "\uCosi\uKdesi"  
kde to prvni bylo o s carkou a to druhe o a carka (takova ta kombinacni)  
Otazka: jaky bude vysledek vyrazu  
  
2] doplnit linq tak aby vraceny vyraz byl g(4)

    var n = new Numbers();
    var list = from x in n where x > 1 TADY DOPLN;
    foreach(var v in list)
    {
        Console.Write("g({0})",v);
    }
    

Numbers mela enumerator s yield returnem 1 2 3 a pak tam byl predefinovany operator OrderBy tak ze telo fce bylo:

    {
      yield retrun 1;
      yield retrun 2;
      yield retrun 3;
      yield retrun 4;
    }
    

3] XAML doplnit tak aby pozadi text blocku bylo cervene

    <StackPanel>
    TADY DOPLN
    <TextBlock>Neco</TextBlock>
    <TextBlock>Cosi</TextBlock>
    </StackPanel>
    

4] a.exe vyuziva b.dll, ktera vyuziva c.dll  
a.exe - pure managed, kompilovana pro x86  
b.dll - pure managed, pro x64  
c.dll - nativni  
  
Jak muze byt kompilovana c.dll:

* x64  
x86  
Any  
Pri takovemto nastaveni a.exe a b.dll nebude mozne program zkompilovat

5] ADO.NET - optimistic concurency - vysvetlit na data setech  
  
6] Window v nem stack opanel a v nem button a vsechny maji PreviewMouseClick nastaveny na jednu fci s telem:

    {
     MessageBox.Show(sender.GetType().Name + "," + e.Source.GetType().Name + "," + e.OriginalSource.GetType().Name);
    }
    

Dve otazky:

* - Kolik se vyvola message boxu?  
- Jaky bude text prvniho z nich?

Byl tam podrobny obrazek, kam presne kliknul mysi.
<{/ForumPost}>

<{ForumPost(poster="Santhos", timestamp=2010-06-20 12:24:57)}>
Odpovedi:  
1] False - vola se stringovska metoda Equal  
2] Tady je naprosto jednoduchy trik, na ktery jsem se snazil prijit asi pul hodiny... :) To ze si nemam vsimat toho predefinovaneho operatoru me napadlo uz na zkousce a moje puvodni odpoved byla:

    var list = from x in n where x > 1 select 4;
    

To ale pak na vystupu bude "g(4) g(4)" protoze pro kazde cislo ktere on vybere vyda 4. Trik je v tom ze casti query se muzou opakovat, takze spravna odpoved je:

    var list = from x in n where x > 1 where x > 2 select 4;
    

Doporucuju podrobne precist [http://msdn.microsoft.com/en-us/library/bb308959.aspx](http://msdn.microsoft.com/en-us/library/bb308959.aspx), zejmena cast Query syntax :)  
3]

    <StackPanel.Resources>
      <Style TargetType="{x:Type TextBlock}">
        <Setter Property="Background" Value="Red" />
      </Style>
    </StackPanel.Resources>
    

4] Nemam poneti  
5] Nevim tedy jak bych to vysvetlil zrovna na data setech, kazdopadne tady alespon je cast te odpovedi: [http://msdn.microsoft.com/en-us/library/bb399373.aspx](http://msdn.microsoft.com/en-us/library/bb399373.aspx), [http://en.wikipedia.org/wiki/Optimistic ... cy_control](http://en.wikipedia.org/wiki/Optimistic_concurrency_control)  
6] Okna se vyvloaji 3. V prvnim bude napsano Window, Button, TextBlock/ButtonChrome - zalezi kam se na tom buttonu klikne. Proc? Protoze Preview... maji nastavenou Routing Strategy na tunelling, coz znamena ze se postupuje od rootu az k elementu co vyvolal event a kazdy element dostane moznost se s tim eventem nejak vyporadat.
<{/ForumPost}>

<{ForumPost(poster="1.John", timestamp=2011-06-18 03:09:58)}>
4- nepůjde to  
ale kdyby b.dll bylo pro ANY CPU tak by to bylo  x86   
a tahle otazka se objevila i v zimním C#
<{/ForumPost}>

