/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
//
// VProp.cs -- Demonstrates the use of a virtual method to override
// a base class method.
//
// Compile this program with the following command line:
// C:>csc VProp.cs
namespace nsVirtual
{
using System;
public class VPropclsMain
{
static public void Main ()
{
clsBase Base = new clsBase();
clsFirst First = new clsFirst();
Base.SetString ("This should set the base class property");
First.SetString ("This should set the derived class property");
Console.WriteLine();
Console.WriteLine (Base.GetString());
Console.WriteLine (First.GetString());
}
}
class clsBase
{
public void SetString (string str)
{
StrProp = str;
}
public string GetString ()
{
return (StrProp);
}
virtual protected string StrProp
{
get
{
Console.WriteLine ("Getting Base string");
return (m_BaseString);
}
set
{
Console.WriteLine ("Setting Base string");
m_BaseString = value;
}
}
private string m_BaseString = "";
}
class clsFirst : clsBase
{
override protected string StrProp
{
get
{
Console.WriteLine ("Getting derived string");
return (m_DerivedString);
}
set
{
Console.WriteLine ("Setting derived string");
m_DerivedString = value;
}
}
private string m_DerivedString = "";
}
}