从类中公开一个字段并添加一个属性?

时间:2014-07-31 09:41:54

标签: c# class properties

我有一个愚蠢的问题,我可能会以错误的方式解决这个问题。

我想在类中添加一个属性来更改字段。我认为由于Class级别的保护,这是不可能的。

SEE:Microsoft.SPOT.Hardware.PWM我希望我的代码修改此类。

我想更改布尔值:

bool invert;

在班级的初始化中:

PWM pwm = new PWM(Cpu.PWMChannel.PWM_4, 10, 0.5, true);

我希望能够访问true变量并进行修改。随意,这不是创建新实例。

我试过了:

public partial class PWM : Microsoft.SPOT.Hardware.PWM
{
private static bool invert;

protected static bool Invert
{
get { return invert; }
set { invert = value; }
}
}

我认为这是一个失败,任何人都有任何想法将此作为财产公开?

2 个答案:

答案 0 :(得分:1)

protected修饰符表示只能从类或子类中访问该字段。

如果要公开该字段,请使用public:

private static bool _invert;

public static bool Invert{

get { return _invert; }
set { _invert = value; }
}
}

答案 1 :(得分:1)

您的问题不是很清楚 - 您是否在课堂上询问如何使课堂字段可见?

如果是这样,您可以通过您已经完成的属性公开它:

    public static int PropertyName
    {
        get
        {
            return this._PropertyName;
        }

        set
        {
            this._PropertyName = value;
        }
    }

    /// <summary>
    /// privatefield for PropertyName 
    /// </summary>
    private static int _PropertyName;

或者您可以简单地将该字段声明为公共字段。我会一直使用该属性,因此我可以控制什么值以及在什么条件下可以设置值。

基类的替代方法:

    public Microsoft.SPOT.Hardware.PWM PWM {get;set;}

    public bool PwmBool
    {
        get
        {
            return false;
        }
        set
        {
            this.PWM = new PWM(Cpu.PWMChannel.PWM_4, 10, 0.5, value);
        }
    }