歧义错误?

时间:2013-05-04 19:46:14

标签: c# ambiguity

所以我更喜欢新手编程,特别是在c#中我有一个错误我需要帮助吗?

所以我正在尝试创建一个rpg系统,我之前开始使用战斗系统,我几乎没有开始我的代码存储在Form1.cs就是这样

    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public class Variables{

       public Graphics character;
        private void Form1_Load(object sender, EventArgs e){
        }


        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.Up:
                    Player.Top = Player.Top - 5;
                    Battle.Steps = Battle.Steps + 10;
                    break;
                case Keys.Down:
                    Player.Top = Player.Top + 5;
                    Battle.Steps = Battle.Steps + 10;
                    break;
                case Keys.Left:
                    Player.Left = Player.Left - 5;
                    Battle.Steps = Battle.Steps + 10;
                    break;
                case Keys.Right:
                    Player.Left = Player.Left + 5;
                    Battle.Steps = Battle.Steps + 10;
                    break;
            }
            if (Battle.Steps == 100)
            {
                Battle.Fight = true;
            }
        }
    }
}

和Battle.cs是

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{

   public class Battle
    {
      public static bool Fight {get; set;}
       public static int Steps; 
       public void Fight (){


    if (Fight == true)
    {

    }
       }
    }
}

但是我收到错误错误Ambiguity between 'WindowsFormsApplication1.Battle.Fight' and 'WindowsFormsApplication1.Battle.Fight()' 当我尝试访问表单1中的变量时,以及当我尝试在Battle.cs中编辑时 我怎么解决这个问题还是有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

在没有真正看到你的战斗类的情况下我能想到的最好的是你有一个名为Fight的变量和一个方法之战,如。

public class form
{
    {
        Battle battle = new Battle();
        battle.Fight = true;
        battle.Fight();

    }
}

public class Battle
{
    public bool Fight = false;
    public bool Fight()
    {
        return true;
    }
}

这会导致歧义,就像你打电话一样,很难弄清楚你是在调用变量还是方法。要修复此问题,可能会为您的变量或函数指定不同的名称。例如,如果变量Fight只是一个bool,看看他们是在战斗中还是应该参加战斗,可以将变量命名为InFight或ShouldFight。