Question: I'm reading the book ["C# Language"](https://rads.stackoverflow.com/amzn/click/com/0321741765), and hit this note from Vladimir Reshetnikov:

> 
> If a static class declares a protected or
>  protected internal member, a compile-time error occurs ([CS1057](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs1057)).
> 
> 
> 

May I know why? 
What's wrong with a static class having a protected member?
Static class can have private member so I guess this CS1057 error is not due to accessibility, but maybe it's due to come compilation issue? as protected member could be overridden in child classes... but I couldn't figure out why.

Answer: 
Because you can't inherit a static class, `protected` serves no purpose - only `public` and `private` make sense here.

More details can be found here: [Why can't I inherit static classes?](https://stackoverflow.com/questions/774181/why-cant-i-inherit-static-classes)
Protected members means they can be accessed from child/derived classes. But the main features of static class are:

1. Only contain static members;
2. Can't be instantiated;
3. Are sealed.

That's why static classes can't have protected members.