Při pohovorech s uchazeči upřednostňuji spíše rozhovor nad kouskem kódu - pokud možno, nevyhledávám žádné záludnosti a snažím se o maximálně jednoduchý a srozumitelný kód. I tak jsem ale býval často nemile překvapen - kandidát nebyl schopen říci, co kód vlastně dělá, obvykle zvládl jen nalézt vytvoření objektu a následovali různé teorie, co se vlastně vůbec bude následně odehrávat.
class Program
{
static void Main(string[] args)
{
var dog = new Dog();
var animal = dog as Animal;
animal.SayMyKind();
animal.SayMyName();
dog.SayMyName();
}
}
class Animal
{
public Animal()
{
this.SayMyKind();
this.SayMyName();
}
public virtual void SayMyKind()
{
Console.WriteLine("I am an animal");
}
public void SayMyName()
{
Console.WriteLine("Bob");
}
}
class Dog: Animal
{
public Dog()
{
this.SayMyKind();
this.SayMyName();
}
public override void SayMyKind()
{
Console.WriteLine("I am a dog");
}
public new void SayMyName()
{
Console.WriteLine("Astor");
}
}
{
static void Main(string[] args)
{
var dog = new Dog();
var animal = dog as Animal;
animal.SayMyKind();
animal.SayMyName();
dog.SayMyName();
}
}
class Animal
{
public Animal()
{
this.SayMyKind();
this.SayMyName();
}
public virtual void SayMyKind()
{
Console.WriteLine("I am an animal");
}
public void SayMyName()
{
Console.WriteLine("Bob");
}
}
class Dog: Animal
{
public Dog()
{
this.SayMyKind();
this.SayMyName();
}
public override void SayMyKind()
{
Console.WriteLine("I am a dog");
}
public new void SayMyName()
{
Console.WriteLine("Astor");
}
}
Myslíte, že je to vážně tak těžké? Zkusit, co to doopravdy provede lze on line zde.
Žádné komentáře:
Okomentovat