在C#中使用与继承相关的get关键字的问题

时间:2011-09-15 05:09:29

标签: c# inheritance encapsulation

所以我遇到了一些问题。我是C#的新手。我的所有属性都是私有的,我使用的是传统的get和set。这是一个抽象类。但是在子类中,当我尝试在另一个方法中使用它时,编译器说不能用作方法。但是,如果我使用C ++方式的加速器和变换器,它工作正常。有办法解决这个问题吗?

非常感谢你的帮助

没关系,我明白了。我刚刚编写了7个小时的代码直接为学校完成这项任务,我的大脑不能正常工作lol非常感谢

1 个答案:

答案 0 :(得分:1)

这将是你正在做的事情(我认为)的标准C#方式。

public abstract class Base
{
    // Automatic Property
    public string Prop1 { get; set; }

    // With backing field
    private string prop2;
    public string Prop2
    {
        get { return prop2; }
        set { prop2 = value; }
    }
}

public class Derived : Base
{
    public string Prop3 { get; set; }
}

public class AnotherClass
{
    void Foo()
    {
        var derived = new Derived();
        // Can get and set all properties
        derived.Prop1 = derived.Prop1;
        derived.Prop2 = derived.Prop2;
        derived.Prop3 = derived.Prop3;
    }
}