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);
}
}
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;
}
}
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));
}
}