1. klasika - velikost int [4B]
2.
Kód: Vybrat vše
// misto 1
public class A
{
// misto 2
public int ia;
public void m(B b)
{
b.ib = 42;
ib = 42;
}
public class B : I
{
//misto 3
public int ib;
public void m(A a)
{
a.ia = 42;
ia = 42;
}
}
}
3. klasická otázka, co platí a neplatí pro user-defined třídy.
4. (4|2)^(1024^6)
5. příklad na enumerátor. Něco ve smyslu:
Kód: Vybrat vše
using System;
using System.Collections.Generic;
static class Program
{
static IEnumerable<int> GetLenghts(this string[] list)
{
if (list == null)
{
throw new ArgumentException();
}
foreach (string s in list)
{
Console.Write("x ");
yield return s.Length;
}
}
static void Main()
{
string[] x = { "a", "aa", "aaa" };
foreach (int i in x.GetLenghts())
{
Console.WriteLine(i);
break;
}
}
}
Možnosti byly něco jako, že to vyhodí runtime chybu, pak že je to závislý na platformě a .NETu, že to vypíše x x 1, x x x 1.... správná odpověď byla x 1.
Další otázka byla na vlákna. Snad ji někdo doplní. Šlo tam přibližně o tohle:
Kód: Vybrat vše
class X
{
public static volatile int a;
public static long b;
public static volatile int c;
public void T2()
{
b = -1;
System.Console.WriteLine(b);
}
public void T1()
{
a = 1;
b = 2;
c = 3;
}
}
Poslední otázka byla na virt. metody.
Kód: Vybrat vše
using System;
class A
{
public virtual void m()
{
Console.WriteLine("A");
}
}
class B : A
{
public override void m()
{
Console.WriteLine("B");
}
}
class C :B
{
public override void m()
{
Console.WriteLine("C");
((A)this).m();
}
}
class Program
{
static void Main()
{
A x = new C();
x.m();
}
}
Kdyžtak mě někdo doplňte. Vše samozřejmě bez záruky