Zk. 16.2.2012

Cílem semináře je seznámit posluchače s jazykem C#, prostředím platformy .NET a tvorbou aplikací s grafickým uživatelským rozhraním. Předpokládají se znalosti objektově orientovaného programování.
Karel_Proted

Zk. 16.2.2012

Příspěvek od Karel_Proted »

Co se vypise?

Kód: Vybrat vše

class A<T>
{
    public class B : A<int>
    {
        public void m()
        {
            Console.WriteLine(typeof(T).ToString());
        }
        public class C : A<int>.B { }
    }
}
class Program
{
    static void Main(string[] args)
    {
        var x = new A<string>.B.C();
        x.m();
    }
}

1. Muze se vypsat "x"?
2. Muze se vypsat neco jineho nez "x", "y" nebo "z"?
dal bych tipoval

Kód: Vybrat vše

class X {
    public static volatile int a;
    public static string b = "x";
    public static int c;

    public void T1() {
        ...
        b = "y";
        ...
    }

    public void T2() {
        ...
        b = "z";
        System.Console.WriteLine(b);
    }
}
1. ne
2. ne (string je asi atomicky)
Snad to reknu dobre..
[*]volatile write - vsechny operace s pameti pred volatile writem se provedou pred nim.
[*]volatile read - vsechny operace s pameti po volatile readu se provedou po nem.


Pouziva se S<T>[] a T[]. Pri jakych typech se mohou tyto dva pristupy chovat jinak?

Kód: Vybrat vše

struct S<T> {
    public T item;
    public static implicit operator T(S<T> s){
        return s.item;
    }

    public static implicit operator S<T>(T item){
        S<T> s;
        s.item = item;
        return s;
    }
}
Pri referencnich typech, ktere nejsou sealed.


Co se vypise?

Kód: Vybrat vše

class Program
{
    static Func<int, Func<int, int>> f = x => (((Func<int, int>)(y => x++ + y++)) + (y => x++ + y++));
    static void Main(string[] args)
    {
        Console.WriteLine(f(10)(20));
    }
}
Ostatni myslim byli otazky, ktere jsou na foru jiz zminene. Tak hodne stesti :)
Odpovědět

Zpět na „NPRG035 Jazyk C# a platforma .NET“