正如标题所说,我想将技能、斯塔姆和运气整数的最大值设置为相关的 *Max 整数的值。*Max int 值在程序启动期间随机设置,常规值在整个程序运行过程中更改。在某些情况下,*最大值可能会在播放过程中增加或减少。
public static int skillMax = 0;
public static int stamMax = 0;
public static int luckMax = 0;
public static int skill = skillMax;
public static int stam = stamMax;
public static int luck = luckMax;
由于我对 C# 的了解仍处于起步阶段,因此我没有尝试太多。但是,我已经在互联网上广泛搜索了,除了最小值和最大值字段以及这段没有解释的代码之外,找不到任何东西:
protected int m_cans;
public int Cans
{
get { return m_cans; }
set {
m_cans = Math.Min(value, 10);
}
}
提前感谢您给我的任何建议!
代码说明:Cans
是一个属性。属性提供对类或结构字段(变量(的受控访问。它们由两个方法组成,分别称为返回值的get
和分配值的set
。一个属性也可以只有一个getter或只有一个setter。
该属性Cans
将其值存储在所谓的支持字段中。这里m_cans
.资源库通过关键字 value
获取新值。
Math.Min(value, 10)
返回两个参数中的最小值。 例如,如果value
为 8,则 8 分配给 m_cans
。如果value
为 12,则 10 分配给 m_cans
。
您可以像这样使用此属性
var obj = new MyCalss(); // Replace by your real class or struct name.
obj.Cans = 20; // Calls the setter with `value` = 20.
int x = obj.Cans; // Calls the getter and returns 10;
属性有助于实现信息隐藏原则。
您可以轻松地将此示例调整为变量。通常,类级变量(字段(前面加上_
以将它们与局部变量(即在方法中声明的变量(区分开来。属性是用 PascalCase 编写的。
private static int _skillMax; // Fields are automatically initialized to the default
// value of their type. For `int` this is `0`.
public static int SkillMax
{
get { return _skillMax; }
set {
_skillMax = value;
_skill = _skillMax; // Automatically initializes the initial value of Skill.
// At program start up you only need to set `SkillMax`.
}
}
private static int _skill;
public static int Skill
{
get { return _skill; }
set { _skill = Math.Min(value, _skillMax); }
}
创建更新值的方法
private static void UpdateSkill(int newValue)
{
skill = newValue;
skillMax = newValue > skillMax ? newValue : skillMax;
}