Skip to content

Instantly share code, notes, and snippets.

@zhenyuan0502
Last active April 8, 2020 18:37
Show Gist options
  • Save zhenyuan0502/698245e67fa93e43a9b7e0579624d1ba to your computer and use it in GitHub Desktop.
Save zhenyuan0502/698245e67fa93e43a9b7e0579624d1ba to your computer and use it in GitHub Desktop.
public static class SealMethod
{
public static void MainFunc()
{
MiddleClass a = new MiddleClass();
a.SomeWeirdFunction();
Bottom b = new Bottom();
b.SomeWeirdFunction();
}
}
public class TopClass
{
private string ThisIsOnlyAccessibleForTopClass { get; set; }
private string ThisIsOnlyAccessibleForTopClassAndMiddleClass { get; set; }
protected virtual string OnlyMiddleClass()
{
return ThisIsOnlyAccessibleForTopClassAndMiddleClass = "As this is a MiddleClass class, I am accessible here.. That is good!";
}
public virtual void SomeWeirdFunction()
{
ThisIsOnlyAccessibleForTopClass = "I can access this here as it is grand father's private member!";
}
}
public class MiddleClass : TopClass
{
public override void SomeWeirdFunction()
{
Console.WriteLine(base.OnlyMiddleClass()); // As this is a MiddleClass class, I am accessible here.. That is good!
Console.WriteLine(OnlyMiddleClass()); // Prohibited
}
protected override sealed string OnlyMiddleClass() => "Prohibited";
}
public class Bottom : MiddleClass
{
public override void SomeWeirdFunction()
{
Console.WriteLine(base.OnlyMiddleClass()); // Prohibited
Console.WriteLine(OnlyMiddleClass()); // Prohibited
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment