J
Joel
Why does this work:
using System;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
DerivedClass d=new DerivedClass();
d.MyProp=10;
Console.WriteLine(d.MyProp.ToString());
}
}
public class DerivedClass : BaseClass, IAbClass
{
#region IAbClass Members
public override int MyProp
{
get{return base.MyProp;}
set{base.MyProp=value;}
}
#endregion
}
public class BaseClass : AbClass
{
}
public abstract class AbClass : IAbClass
{
private int _nAb;
#region IAbClass Members
public virtual int MyProp
{
get{return _nAb;}
set{_nAb=value;}
}
#endregion
}
public interface IAbClass
{
int MyProp{get;set;}
}
}
But not this:
using System;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
DerivedClass d=new DerivedClass();
d.MyProp=10;
Console.WriteLine(d.MyProp.ToString());
}
}
public class DerivedClass : BaseClass, IAbClass
{
#region IAbClass Members
public override int IAbClass.MyProp
{
get{return base.MyProp;}
set{base.MyProp=value;}
}
#endregion
}
public class BaseClass : AbClass
{
}
public abstract class AbClass : IAbClass
{
private int _nAb;
#region IAbClass Members
public virtual int IAbClass.MyProp
{
get{return _nAb;}
set{_nAb=value;}
}
#endregion
}
public interface IAbClass
{
int MyProp{get;set;}
}
}
TIA
</joel>
using System;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
DerivedClass d=new DerivedClass();
d.MyProp=10;
Console.WriteLine(d.MyProp.ToString());
}
}
public class DerivedClass : BaseClass, IAbClass
{
#region IAbClass Members
public override int MyProp
{
get{return base.MyProp;}
set{base.MyProp=value;}
}
#endregion
}
public class BaseClass : AbClass
{
}
public abstract class AbClass : IAbClass
{
private int _nAb;
#region IAbClass Members
public virtual int MyProp
{
get{return _nAb;}
set{_nAb=value;}
}
#endregion
}
public interface IAbClass
{
int MyProp{get;set;}
}
}
But not this:
using System;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
DerivedClass d=new DerivedClass();
d.MyProp=10;
Console.WriteLine(d.MyProp.ToString());
}
}
public class DerivedClass : BaseClass, IAbClass
{
#region IAbClass Members
public override int IAbClass.MyProp
{
get{return base.MyProp;}
set{base.MyProp=value;}
}
#endregion
}
public class BaseClass : AbClass
{
}
public abstract class AbClass : IAbClass
{
private int _nAb;
#region IAbClass Members
public virtual int IAbClass.MyProp
{
get{return _nAb;}
set{_nAb=value;}
}
#endregion
}
public interface IAbClass
{
int MyProp{get;set;}
}
}
TIA
</joel>