venerdì 14 ottobre 2011

Testing Abstract Class

Un amico mi ha chiesto lumi su un comportamento delle classi astratte.

Questo esempio è stato realizzato con lui, al fine unico di poter ottenere il comportamento evidenziato nel main.

Di contro mi è sembrato che questo semplice esempio possa tornare utile anche ad altri e quindi eccolo in pubblicazione...


public abstract class TestAbstract
{
private string _innerText = "Valore Iniziale";

public virtual string Test_A(int a)
{
PrepareInnerText(a);
return _innerText;
}

private void PrepareInnerText(int a)
{
_innerText = (a > 0 ? "Nuovo Valore"+a.ToString()
: "Immesso valore negativo");
}

public virtual string Test_B()
{
return _innerText;
}

}

public class coTest : TestAbstract
{

}


class Program
{
static void Main(string[] args)
{

coTest c = new coTest();

// Valore inziale
Console.WriteLine(c.Test_B());

// Valore positivo
Console.WriteLine(c.Test_A(1));

// valore negativo
Console.WriteLine(c.Test_A(-1));

// valore finale
Console.WriteLine(c.Test_B());

Console.ReadLine();

c = null;

coTest b = new coTest();

// Valore inziale
Console.WriteLine(b.Test_B());

Console.ReadLine();

b = null;
}
}



Si noti che il risultato atteso per Console.WriteLine(b.Test_B()); è "Valore Iniziale"

Un grazie Giovanni !

Nessun commento: