c#:让一个字段只能被包含它的类修改
本文关键字:包含它 修改 字段 一个 | 更新日期: 2023-09-27 18:08:56
我确定这个问题之前已经问过了,我只是不知道正确的表达方式,所以我找不到我要找的东西。
我有一个类,我想从外部看到一个字段,只是不能直接修改它。
public class myclass
{
public int value;
public void add1()
{
value = value + 1;
}
}
所以我真的想只有'value'字段可修改从方法add1()
,但我仍然希望能够看到'value'的值。
编辑:我认为只能通过类myclass
修改,但我键入其他。谢谢你指出来
public int value { get; private set; }
不能通过add1
方法修改,但可以通过myclass
方法修改
看到这个:https://msdn.microsoft.com/en-us/library/75e8y5dd.aspx
请考虑以下选项来封装字段(即为私有字段值提供一个"interface"):
-
提供公共方法(accessor):
// ... private value; // ... public void Add() { ++value; } public int GetValue() { return value; }
-
提供公共属性(唯一访问器):
// ... private value; // ... public void Add() { ++value; } public int Value { get { return value; } }
-
提供自动实现的属性(public accessor, private mutator):
// ... // The field itself is not needed: private value; // ... public void Add() { ++Value; } public int Value { get; private set; }
值得注意的是,一些ide或ide插件提供了适当的重构,称为"封装字段"。
您可以使用不带setter的公共属性从外部查看value
。将value
设置为私有,使其仅在类中可见。
public class myclass
{
private int value;
public void add1()
{
value = value + 1;
}
public int Value
{
get
{
return value;
}
}
}