The protected keyword is a member access modifier. A protected member is accessible within its class and by derived classes.
A protected member of a base class is accessible in a derived class only if the access takes place through the derived class type. For example, consider the following code segment:
using System;
class B
{
protected int x = 123;
}
class D : B
{
static void Main()
{
B b = new B();
D d = new D();
// Error CS1540, because x can only be accessed by
// classes derived from B.
// b.x = 10;
// OK, because this class derives from B.
d.x = 10;
}
}
The statement b.x =10 generates an error because B is not derived from D.
Struct members cannot be protected because the struct cannot be inherited.
Example:
In this example, the class DerivedLocation is derived from Location; therefore, you can access the protected members of the base class directly from the derived class.
using System;
class Location
{
protected int x;
protected int y;
}
class DerivedLocation: Location
{
static void Main()
{
DerivedLocation dlocation = new DerivedLocation();
// Direct access to protected members:
dlocation.x = 10;
dlocation.y = 15;
Console.WriteLine(“x = {0}, y = {1}”, dlocation.x, dlocation.y);
}
}
Output:
x = 10, y = 15
[…] modifier: A keyword, such as private, protected, internal, or public, that restricts access to a type or type […]
By: C# Keywords & Terminology « Journey through Web Development on January 3, 2009
at 6:21 am