As part of the Roslyn documentation on GitHub, there's a page called Language feature implementation status, with planned language features for C# and VB.
One feature I couldn't wrap my head around was private protected
access modifier:
private protected string GetId() { … }
There is also a page of C# Language Design Notes, which explains many new features, but not this one.
Eric Lippert said in a comment:
Your error is in thinking of the modifiers as increasing restrictions. The modifiers in fact always decrease restrictions. Remember, things are "private" by default; only by adding modifiers do you make them less restricted.
What is the meaning of private protected
? When might I use it?
According to "Professional C# 2008" by De Bill Evjen and Jay Glynn, page 1699:
private protected - "only derived types within the current assembly"
C++/CLI has a similar feature - Define and Consume Classes and Structs (C++/CLI) > Member visibility:
private protected
-or-protected private
- Member is protected inside the assembly but private outside the assembly.