SnapshotBase snapshotInstance = new Snapshot<SnapshotBase>();
snapshotInstance.SomeMethod1();
snapshotInstance.SomeMethod2();
this shoud call the SnapshotBase's methods
((Snapshot<SnapshotBase>) snapshotInstance).SomeMethod1();
((Snapshot<SnapshotBase>) snapshotInstance).SomeMethod2();
should call Snapshot<SnapshotBase>'s methods just like in a normal inheritance scenario
I'm not sugesting any oop rules breaking. I've told you before this shudn't replace non virtual methods using this tecnique.
I don't realy know why you understood it like that.
this is Exacly how my Generic class should behave, like a normal inherited class
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Testing {
static class Program {
static void Main(string[] args)
{
BaseClass bc = new Class2();
bc.Write();
((Class2)bc).Write();
Console.ReadKey();
}
}
public class BaseClass {
public void Write() {
Console.WriteLine("1");
}
}
public class Class2 : BaseClass {
public void Write() {
Console.WriteLine("2");
}
}
}
Results :
1
2
[EDITED]