1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | using System; public abstract class MenuItem { protected string m_Title; } public class ContainerItem : MenuItem { void Foo() { var derivedItem = new ContainerItem(); derivedItem.m_Title = "test"; // works fine var baseItem = (MenuItem)derivedItem; baseItem.m_Title = "test"; // compiler error! } } |
dXNpbmcgU3lzdGVtOwoKcHVibGljIGFic3RyYWN0IGNsYXNzIE1lbnVJdGVtCnsKICAgIHByb3RlY3RlZCBzdHJpbmcgbV9UaXRsZTsKfQoKcHVibGljIGNsYXNzIENvbnRhaW5lckl0ZW0gOiBNZW51SXRlbQp7CiAgICB2b2lkIEZvbygpCiAgICB7CiAgICAgICAgdmFyIGRlcml2ZWRJdGVtID0gbmV3IENvbnRhaW5lckl0ZW0oKTsKICAgICAgICBkZXJpdmVkSXRlbS5tX1RpdGxlID0gInRlc3QiOyAvLyB3b3JrcyBmaW5lCgogICAgICAgIHZhciBiYXNlSXRlbSA9IChNZW51SXRlbSlkZXJpdmVkSXRlbTsKICAgICAgICBiYXNlSXRlbS5tX1RpdGxlID0gInRlc3QiOyAvLyBjb21waWxlciBlcnJvciEKICAgIH0KfQ==
prog.cs(16,18): error CS1540: Cannot access protected member `MenuItem.m_Title' via a qualifier of type `MenuItem'. The qualifier must be of type `ContainerItem' or derived from it prog.cs(5,22): (Location of the symbol related to previous error) Compilation failed: 1 error(s), 0 warnings
-
result: Compilation error (maybe you wish to see an example for C#)


