【发布时间】:2015-01-31 04:51:06
【问题描述】:
我在更改不同类的变量时遇到问题。即使我使用了访问修饰符(get 和 set),编译器仍然认为它是只读的,我不能在另一个类中更改它。
private float speed;
public float Speed
{
get {return speed;}
set {speed = value;}
}
我不确定这是否重要,但这个变量来自我的主要抽象类,我在其他类中使用它。这里发生的事情是,我在一个类(Player.cs)中为这个变量赋值,我试图通过初始化它的对象(Physics.cs)在另一个类中改变它。它们都继承自那个主要的抽象类。
【问题讨论】:
-
确保您尝试更改
Speed而不是speed。 -
您使用的是同一个实例吗?
-
你在哪里指定属性是
readonly..? Creating Read-Only Properties -
Grant Winney好点我只是重新阅读它,措辞误导了代码编写方式实际上应该有效。我删除了我的评论,也许 OP 在代码中做错了什么并在此过程中的其他地方覆盖它对此感到抱歉 -
@Meetz:正如你所描述的,它没有理由不工作。您需要在问题中包含三个类的实际使用情况的(简化)示例(单击编辑按钮 - 不要尝试将代码放在评论中)。
标签: c# oop readonly access-modifiers