public class ClassA >>> { >>> protected virtual string InvokeString { get; set; } >>> } >>> >>> public class ClassB : ClassA >>> { >>> public void SetInvokeString(string s) >>> { >>> base.InvokeString = s; >>> } >>> >>> public new string InvokeString >>> { >>> get { return base.InvokeString; } >>> } >>> }>>
>> public static class qqq >> { >> static void Main() >> { >> ClassB xx = new ClassB(); >> >> ((ClassA)xx).InvokeString = "hello"; >> string pp = xx.InvokeString; >> >> >> >> } >>} >>>>
>> public class ClassA >> { >> public virtual string InvokeString { get; set; } >> } >> >> public class ClassB : ClassA >> { >> >> public new string InvokeString >> { >> get { return base.InvokeString; } >> } >> >> >> } >>>((ClassA)xx).InvokeString = "hello"; doesn't work for me ? (If it did it would, of course, defeat the point of the sub-classed InvokeString implementation :-{ )