我正在用C#制作游戏,你有弹药和最大容量。
是否可以制作某种类似的方法
ammoInt.Maxed;
所以我可以像这样使用它:
if (ammoInt.Maxed == true) etc.
检查ammo
int是否等于maxAmmoInt
?
修改
感谢您的输入,但最后一个问题:扩展程序是否处于单独的类中?
答案 0 :(得分:4)
您可以为int
创建Extension method。像:
public static class MyExtensions
{
public static bool Maxed(this int parameter)
{
return parameter > 100;
}
}
然后你可以这样称呼它:
if(ammoInt.Maxed())
答案 1 :(得分:1)
技术上,是的。扩展方法在.Net中提供此功能。但这是糟糕的设计。
public static class MyExtensions
{
public static public bool IsMaxed( this int value )
{
return value > 50; // or whatever
}
}
int thing = 10;
bool result = thing.IsMaxed( );
这允许您在任何int对象上调用该方法。但就像我说的那样,你应该重新考虑那个设计,因为那是一个黑客攻击。
答案 2 :(得分:1)
我看到它的方式是你有两种选择。
1)创建一个包含bool
属性的包装类,检查其值是否大于100
public class Ammo
{
public int Value {get; set;}
public bool Maxed
{
get
{
return Value > 100;
}
}
}
2)您可以创建扩展方法
public static class CustomExtensions
{
public static bool Maxed(this int value)
{
return value> 100;
}
}