-1
[Serializable]
public class DOCharStats
{
public int Stamina { get; set; }
public int maxStamina { get; set; }
}
[Serializable]
public class DOMapStats
{
public int xlocation { get; set; }
public int ylocation { get; set; }
}
//Name of char and stats
public static Dictionary<string, DOCharStats> dCharStats = new Dictionary<string, DOCharStats>();
public static Dictionary<string, DOMapStats> dMapStats = new Dictionary<string, DOMapStats>();
//Name of container and dict.
public static Dictionary<string, object> dContainer = new Dictionary<string, object>();
static void Main(string[] args)
{
DOCharStats newStats = new DOCharStats();
dCharStats.Add("MC", newStats);
Console.WriteLine(dCharStats["MC"].Stamina);
Console.WriteLine(dCharStats["MC"].maxStamina);
newStats.Stamina = 5;
newStats.maxStamina = 10;
Console.WriteLine(dCharStats["MC"].Stamina);
Console.WriteLine(dCharStats["MC"].maxStamina);
DOMapStats mapstats = new DOMapStats();
mapstats.xlocation = 20;
mapstats.ylocation = 40;
dMapStats.Add("MC", mapstats);
//How to access dCharStats(dictionary variant) from a string?
dContainer.Add("_dCharStats",dCharStats);
dContainer.Add("_dMapStats", dMapStats);
}
dCharStats
和dMapStats
將在程序運行時被其他方法修改。在運行時從字符串訪問實例字典?
我想訪問&修改dCharStats
或dMapStats
基於一個字符串。我曾嘗試通過dContainer
這樣做,但我無法以通用方式投射dCharStats(object)
至dCharStats(Dictionary<String,DOCharStats>)
。
有沒有辦法在運行時從字符串訪問實例字典(dCharStats)?
你是什麼意思我無法以通用方式強制轉換爲字典?不能你只是'(Dictionary)dContainer [「_ dCharStats」]'? –
這裏是關於如何創建和訪問字典的教程<> http://www.csharp-station.com/Tutorial/CSharp/Lesson20 – MethodMan
這裏的問題是指定DOCharStats作爲類型。我有幾種不同的數據對象類。這將需要爲每個新的DO類編寫代碼。 – MrSean