【发布时间】:2010-09-20 07:15:31
【问题描述】:
对此可能有一个非常合乎逻辑的解释,但我有一个问题。
假设我有一个名为 _rect 的 Rectangle 类型变量。我现在可以说 _rect.X = 50;没有任何问题。
现在我有一个类,它有一个名为 Rect 的属性,它公开了内部变量 _rect。
然后,如果我尝试写 Rect.X = 50; 我得到以下编译错误:
不能修改'TestClass.Rect'的返回值,因为它不是一个变量。
我可以为不可变类型写Rect = new Rectangle( 50, Rect.Y, Rect.Width, Rect.Height),但对于非不可变类型,还有其他方法吗?
我想为这个矩形字段使用自动属性,但是不能在类本身中修改它真的很烦人。
有没有什么办法可以不创建一个支持字段并删除自动属性?
【问题讨论】:
-
您能向我们展示您的 Rect 类代码吗?为什么不使用内置的 Rect 类?
-
矩形是类还是结构?如果它是一个结构,请尝试使其成为一个类
-
给我们一个完整的代码清单,我很难想象你在说什么,这将有助于澄清你的问题。
-
抱歉给您带来了困惑。 Rect 是一个标准的 System.Drawing.Rectangle。我已更新我的问题以消除混淆。
-
另请参阅此问题(非重复):stackoverflow.com/questions/3618693/…