我想通過引用它的名稱來訪問其他字段的數據結構。如何通過引用數據結構名稱來訪問其他字段
例如:
value1: "21", "value 1", "AAA"
value2: "23", "value 2", "BBB"
value3: "35", "value 3", "CCC"
我想有這樣的訪問數據結構:
MyStructure.value1 -- > return "value 1" and "AAA"
什麼數據結構做ü喜歡哪一種? 感謝您的任何幫助
我想通過引用它的名稱來訪問其他字段的數據結構。如何通過引用數據結構名稱來訪問其他字段
例如:
value1: "21", "value 1", "AAA"
value2: "23", "value 2", "BBB"
value3: "35", "value 3", "CCC"
我想有這樣的訪問數據結構:
MyStructure.value1 -- > return "value 1" and "AAA"
什麼數據結構做ü喜歡哪一種? 感謝您的任何幫助
根據你的評論,你想存儲多種語言的錯誤描述。不要在程序代碼中嵌入可讀的字符串,而要使用資源文件。我不會解釋如何使用它們,而是我會引用你在線搜索「.net資源本地化」以找到大量的文章和教程。
爲每種語言創建一個資源文件(給它一個合適的名稱),然後將這些消息添加到文件中。我建議使用一個枚舉作爲一個鍵(在技術上,枚舉的ToString()
值將作爲關鍵,就像這樣:
enum ErrorMessage {
OutOfMemory,
PEBCAK,
IdTenTError,
// etc...
}
public static class ResourceHelper {
public static String GetMessage(ErrorMessage message) {
String key = "ErrorMessage_" + message.ToString();
return ResourceManager.GetString(key);
}
}
你的英語(en-US)的資源文件將包含此:
ErrorMessage_OutOfMemory "Out of memory"
ErrorMessage_PEBCAK "er..."
ErrorMessage_IdTenTError "Who is writing these error messages?"
重複其他語言,如FR-FR:
ErrorMessage_OutOfMemory "Manque de mémoire"
ErrorMessage_PEBCAK "Problème existe entre chaise et le clavier"
ErrorMessage_IdTenTError "Moins on en dit mieux"
的ResourceManager.GetString
方法選擇從Thread.CurrentThread.CurrentUICulture
財產使用的語言,您可以overrride THI。 s與GetString(String name, CultureInfo culture)
重載,強制選擇語言。
試試這個msdn:
class Foo
{
public string Value { get; set; }
public string OtherValue { get; set; }
}
var dictionary = new Dictionary<string, Foo>();
dictionary.Add("21", new Foo { Value = "value 1", OtherValue = "AAA" });
dictionary.Add("23", new Foo { Value = "value 2", OtherValue = "BBB" });
dictionary.Add("35", new Foo { Value = "value 3", OtherValue = "CCC" })
var foo = dictionary["21"];
//foo.OtherValue
//foo.Value
要映射一個值到一個複雜的對象。這最好使用Dictionary來完成。首先你要設計一個包含所有數據的單個值類:
class ErrorInfo
{
public ErrorInfo(string descriptionEN, string descriptionDE)
{
DescriptionEN = descriptionEN;
DescriptionDE = descriptionDE;
}
public string DescriptionEN {get; private set;}
public string DescriptionDE {get; private set;}
}
然後你就可以定義從錯誤代碼映射到相關ERRORINFO的字典:
var dict = new Dictionar<string, ErrorInfo>();
您還必須填寫字典:
dict.Add("1", new ErrorInfo("An error ocurred", "Ein Fehler ist aufgetreten"));
dict.Add("2", new ErrorInfo("Unknown error", "Unbekannter Fehler"));
// etc.
得到一個錯誤的信息,如果你只有錯誤代碼很簡單:
ErrorInfo info = dict["1"];
這種方法可以很容易地通過簡單地增加更多的屬性ErrorInfo
請改寫你的問題進行擴展。目前還不清楚你在問什麼。請注意,C#不支持像C和C++這樣的語法擴展,而不是簡單的運算符重載。 – Dai 2014-11-22 12:26:53
@Dai我想創建一個類來管理我的程序中的錯誤描述,以便顯示給用戶。我想用兩種語言保存錯誤和描述的代碼。它更好地創建列表?或3D陣列?或結構? ...? – Elahe 2014-11-22 12:29:25