コード例 #1
0
    public static void Main()
    {
        Incrementer i1 = new Incrementer(0);
        Incrementer i2 = new DerivedIncrementer(20);

        i1.Increment(1);
        i1.Increment(2);
        i1.Increment(3);
        i1.Increment(4);
        i1.Increment(5);
        Console.WriteLine("-----------------------------");
        i2.Increment(4);
        i2.Increment(5);
        i2.Increment(6); // will cause an assertion error
    }                    // end Main() method
コード例 #2
0
    public static void Main()
    {
        Incrementer i1 = new Incrementer(0);
        Incrementer i2 = new DerivedIncrementer(20);
        Incrementer i3 = new WeakenedDerivedIncrementer(10);
        Incrementer i4 = new StrengthenedDerivedIncrementer(10);

        i1.Increment(1);
        i1.Increment(2);
        i1.Increment(3);
        i1.Increment(4);
        i1.Increment(5);
        Console.WriteLine("-----------------------------");
        i2.Increment(4);
        i2.Increment(5);
        Console.WriteLine("-----------------------------");
        i3.Increment(5);
        Console.WriteLine("-----------------------------");
        i4.Increment(2); // OK so far...
        i4.Increment(3); // OK here too...
        i4.Increment(4); // Wait a minute...this should work!
    }                    // end Main() method
コード例 #3
0
    public static void Main()
    {
        Incrementer i1 = new Incrementer(0);
        Incrementer i2 = new DerivedIncrementer(20);
        Incrementer i3 = new WeakenedDerivedIncrementer(10);

        i1.Increment(1);
        i1.Increment(2);
        i1.Increment(3);
        i1.Increment(4);
        i1.Increment(5);
        Console.WriteLine("-----------------------------");
        i2.Increment(4);
        i2.Increment(5);
        Console.WriteLine("-----------------------------");
        i3.Increment(5);
        i3.Increment(6);  // it does not cause an error here...
        i3.Increment(7);  // nor here
        i3.Increment(8);  // nor here
        i3.Increment(9);  // nor here
        i3.Increment(10); // nor here
        i3.Increment(11); // ...but here it does!
    }                     // end Main() method