2013-05-04 108 views
0

所以我很喜歡編程,尤其是在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; 
      } 
     } 
    } 
} 

和戰鬥。 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 這是怎麼回事如何解決這還是有更好的方法來d這個?

+0

顯示您的「戰鬥」類。 – 2013-05-04 19:47:51

+0

也許嘗試將您的'bool'屬性'Fight'的名稱更改爲'Fighting' – 2013-05-04 19:51:59

+0

本網站上的RPG標記是指IBM最初創建的古老的RPG編程語言,主要用於企業核心業務應用程序你每天都會遇到。 – WarrenT 2013-05-04 20:42:11

回答

0

我可以沒有真正看到你的戰鬥類最好的是你有一個變量名爲撲滅和一個方法撲滅如。

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僅僅是一個布爾值來查看他們是否處於戰鬥狀態,或者應該進入戰鬥狀態,那麼可以命名變量InFight或ShouldFight。

+0

對不起,我把我的戰鬥類錯誤:/ – user2350585 2013-05-04 20:08:29

+0

同樣的事情仍然適用你有一個方法和一個名稱相同的屬性更改屬性public static bool Fight {get;設置;}像戰鬥或IsFight的東西。 – Midpipps 2013-05-04 20:22:27