是否可以这样做:MyInt.CustomMethod

时间:2013-12-02 19:54:26

标签: c# methods int

我正在用C#制作游戏,你有弹药和最大容量。

是否可以制作某种类似的方法

ammoInt.Maxed;

所以我可以像这样使用它:

if (ammoInt.Maxed == true) etc.

检查ammo int是否等于maxAmmoInt

修改

感谢您的输入,但最后一个问题:扩展程序是否处于单独的类中?

3 个答案:

答案 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;
   }
}