2016-03-27 24 views
0

我一直在試圖構建下面的文本冒險,並且遇到了一個錯誤,我無法弄清楚如何解決。錯誤是:C#如何使用兩個不同的字符串重載添加方法

資產/ My_Scripts/MH_Script.cs(19,23):錯誤CS1501:沒有重載的方法添加」取2的論點

這裏是MH_Script.cs開始代碼,該列表相當長,因爲這是一個文本冒險。

using UnityEngine; 
using System.Collections; 
using System.Collections.Generic; 

public class MH_Script { 

    public static List<MH_ScriptManager> sList = new List<MH_ScriptManager>(); 

     public MH_Script(){ 

     sList.Add("start", "You awaken in a sweltering room.... 

有以同樣的方式加入到sList多個字符串依次爲:

public string SendScript(string state){ 
     string returnthis = ""; 
     foreach(MH_ScriptManager sm in sList){ 
      if(sm.getState() == state){ 
       returnthis = sm.getStory(); 
      } 
     } 
     return returnthis; 
    } 
} 

這裏是MH_ScriptManager

using UnityEngine; 
using System.Collections; 
using System.Collections.Generic; 

public class MH_ScriptManager{ 


    public Helpers.STATE gState; 
    public string gScript; 
    public string getCurrentState(){ 
     return gState; 
    } 

    public MH_ScriptManager (string state, string script){ 
     gState = Helpers.ParseEnum<Helpers.STATE>(state); 
     gScript = script; 
    } 

    public string getStory(){ 
     return gScript; 
    } 

    public string getState(){ 
     return gState.ToString(); 
    } 

    public void setStory(string script){ 
     gScript = script; 
    } 

    public void setState(string state){ 
     gState = Helpers.ParseEnum<Helpers.STATE>(state); 
    } 

    public bool compareStatetoString(string compare){ 
     if (gState == Helpers.ParseEnum<Helpers.STATE> (compare)) 
      return true; 
     else 
      return false; 
    } 
} 

可有人請向我解釋我在做什麼錯誤的,以及我將來如何解決這個錯誤?

+0

我不是能夠做到這一點?我的老師告訴我,我應該以這種方式去解決這個問題,然後在她回答錯誤之前結束了這個過程。我從字面上試圖學習這門語言,這是我的第一個。 –

回答

2

因爲Add方法應該有一個說法,但你給它的兩個參數,所以

sList.Add("start", "You awaken in a sweltering room); 

變化:

sList.Add("You awaken in a sweltering room) 
+0

我意識到這一點,這不是我想要完成的。感謝您的反饋意見! –

3

List.Add需要一個參數,但在這種情況下,你是傳遞兩個參數,這是一個例外。

而且sListMH_ScriptManager類型的,所以你需要的是

sList.Add(new MH_ScriptManager("start", "You awaken in a sweltering room...")); 
+0

這會拋出一個不同的錯誤'MH_Script.cs(13222):錯誤CS1729:'MH_ScriptManager'類型不包含帶'2'參數的構造函數 –

+0

它具有帶兩個參數的構造函數'MH_ScriptManager(string state,字符串腳本)',原因可能是別的。 –

+0

我也將它添加爲'sList.Add(新的MH_ScriptManager(「開始」,「你覺醒......」));'因爲我相信腳本管理器出錯後。> –

相關問題