Professional Documents
Culture Documents
Chicken
Chicken
namespace ChikenEgg
{
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
}
}
public interface IBird
{
Egg Lay();
}
public class Egg
{
private readonly Func<IBird> _createBird;
private bool _hatched;
public Egg(Func<IBird> createBird)
{
_createBird=createBird;
}
public IBird Hatch()
{
if(_hatched) throw new InvalidOperationException("Egg already Htched");
_hatched=true;
return _createBird();
}
}