C#从double []方法返回bool

时间:2014-06-19 00:30:23

标签: c#

如何从这个双数组方法返回一个bool?

public static double[] GetUIPosition(string name)
    {
        if (FastUICheck.FastUICheckVisible(name, 0) == true)
        {
            UIControl control = new UIControl(Engine.Current.Memory, Engine.Current.ObjectManager.x984_UI.x0000_Controls.x10_Map[name].Value.Address);
            double[] point = new double[4];
            point[0] = control.x4D8_UIRect.Left;
            point[1] = control.x4D8_UIRect.Top;
            point[2] = control.x4D8_UIRect.Right;
            point[3] = control.x4D8_UIRect.Bottom;

            return point;

        }
        else
        {
            return false;
        }
   }

所以基本上我正在检查一个控件是否存在于内存中并且是可见的,如果是,那么我想得到它的直接。 所以,如果是的话,我返回一个带有4个点的数组,否则我想返回false。

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:6)

不,bool无法投放到dobule[]

但是,您只需返回null并将其作为“假”值检查。

您还可以采用TryParse方法并返回booldouble[]作为out参数。签名将是:

public static bool GetUIPosition(string name, out double[] position)

您的代码返回null:

public static double[] GetUIPosition(string name)
{
    if (FastUICheck.FastUICheckVisible(name, 0) == true)
    {
       UIControl control = new UIControl(Engine.Current.Memory, Engine.Current.ObjectManager.x984_UI.x0000_Controls.x10_Map[name].Value.Address);
       double[] point = new double[4];
       point[0] = control.x4D8_UIRect.Left;
       point[1] = control.x4D8_UIRect.Top;
       point[2] = control.x4D8_UIRect.Right;
       point[3] = control.x4D8_UIRect.Bottom;

       return point;  
   }
   else
   {
      return null;
   }
}

类似的问题和有用的答案: How can I return multiple values from a function in C#?