正如标题所述,我想将技能,固定和运气整数的最大值设置为相关* 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#的了解仍处于起步阶段,因此我没有做太多尝试。但是,我已经在互联网上进行了广泛的搜索,但是除了MinValue和MaxValue字段以及这段没有任何解释的代码外,找不到任何东西:
protected int m_cans;
public int Cans
{
get { return m_cans; }
set {
m_cans = Math.Min(value, 10);
}
}
在此先感谢您提出的任何建议!
答案 0 :(得分:1)
代码说明: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;
属性有助于实现a test example的原则。
您可以轻松地在此示例中修改您的变量。通常,类级别变量(字段)以_
开头,以将其与局部变量(即在方法中声明的变量)区分开来。属性用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); }
}
答案 1 :(得分:0)
创建方法以更新值
private static void UpdateSkill(int newValue)
{
skill = newValue;
skillMax = newValue > skillMax ? newValue : skillMax;
}