我想要做的是允许公开增加我的班级中的整数值,但不允许公开地明确设置。C#允许公开增加财产,但不明确注册
我知道我可以创建这样一个功能:
void IncrementMyProperty()
,但我想允许用户只是这样做:
MyClass.Property++;
,而不允许这样的:
MyClass.Property = <SomeInt>;
这只是为了方便。我只是想知道是否有办法做到这一点。
下面是一个例子:
class MyClass
{
private int _count;
public int Count
{
get { return _count; }
private set { _count = value; }
}
public void AddOne()
{
_count++;
}
}
class Program
{
static void Main()
{
MyClass example;
for (int i = 0; i < 10; i++)
example.Count++;
}
}
显然,这将无法编译。这只是为了表明我想要做什么。
这是不可能没有做一些愚蠢的东西,如提到的运算符重载。这可能是为了方便,但最终会产生难以维护的代码。 – CSharpie 2014-09-29 22:38:51
这就是我想的。虽然谢谢! – OneHoopyFrood 2014-09-29 22:39:49
谁的方便?方法的方式是一个清晰可预见的解决方案。允许++但不是=并不那么方便,但令人困惑,或者你是一个人吗? – TaW 2014-09-29 23:29:31