//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using GameFramework.Resource; using System; using System.Collections.Generic; namespace GameFramework.Localization { /// /// 本地化管理器。 /// internal sealed partial class LocalizationManager : GameFrameworkModule, ILocalizationManager { private readonly Dictionary m_Dictionary; private readonly DataProvider m_DataProvider; private ILocalizationHelper m_LocalizationHelper; private Language m_Language; /// /// 初始化本地化管理器的新实例。 /// public LocalizationManager() { m_Dictionary = new Dictionary(StringComparer.Ordinal); m_DataProvider = new DataProvider(this); m_LocalizationHelper = null; m_Language = Language.Unspecified; } /// /// 获取或设置本地化语言。 /// public Language Language { get { return m_Language; } set { if (value == Language.Unspecified) { throw new GameFrameworkException("Language is invalid."); } m_Language = value; } } /// /// 获取系统语言。 /// public Language SystemLanguage { get { if (m_LocalizationHelper == null) { throw new GameFrameworkException("You must set localization helper first."); } return m_LocalizationHelper.SystemLanguage; } } /// /// 获取字典数量。 /// public int DictionaryCount { get { return m_Dictionary.Count; } } /// /// 获取缓冲二进制流的大小。 /// public int CachedBytesSize { get { return DataProvider.CachedBytesSize; } } /// /// 读取字典成功事件。 /// public event EventHandler ReadDataSuccess { add { m_DataProvider.ReadDataSuccess += value; } remove { m_DataProvider.ReadDataSuccess -= value; } } /// /// 读取字典失败事件。 /// public event EventHandler ReadDataFailure { add { m_DataProvider.ReadDataFailure += value; } remove { m_DataProvider.ReadDataFailure -= value; } } /// /// 读取字典更新事件。 /// public event EventHandler ReadDataUpdate { add { m_DataProvider.ReadDataUpdate += value; } remove { m_DataProvider.ReadDataUpdate -= value; } } /// /// 读取字典时加载依赖资源事件。 /// public event EventHandler ReadDataDependencyAsset { add { m_DataProvider.ReadDataDependencyAsset += value; } remove { m_DataProvider.ReadDataDependencyAsset -= value; } } /// /// 本地化管理器轮询。 /// /// 逻辑流逝时间,以秒为单位。 /// 真实流逝时间,以秒为单位。 internal override void Update(float elapseSeconds, float realElapseSeconds) { } /// /// 关闭并清理本地化管理器。 /// internal override void Shutdown() { } /// /// 设置资源管理器。 /// /// 资源管理器。 public void SetResourceManager(IResourceManager resourceManager) { m_DataProvider.SetResourceManager(resourceManager); } /// /// 设置本地化数据提供者辅助器。 /// /// 本地化数据提供者辅助器。 public void SetDataProviderHelper(IDataProviderHelper dataProviderHelper) { m_DataProvider.SetDataProviderHelper(dataProviderHelper); } /// /// 设置本地化辅助器。 /// /// 本地化辅助器。 public void SetLocalizationHelper(ILocalizationHelper localizationHelper) { if (localizationHelper == null) { throw new GameFrameworkException("Localization helper is invalid."); } m_LocalizationHelper = localizationHelper; } /// /// 确保二进制流缓存分配足够大小的内存并缓存。 /// /// 要确保二进制流缓存分配内存的大小。 public void EnsureCachedBytesSize(int ensureSize) { DataProvider.EnsureCachedBytesSize(ensureSize); } /// /// 释放缓存的二进制流。 /// public void FreeCachedBytes() { DataProvider.FreeCachedBytes(); } /// /// 读取字典。 /// /// 字典资源名称。 public void ReadData(string dictionaryAssetName) { m_DataProvider.ReadData(dictionaryAssetName); } /// /// 读取字典。 /// /// 字典资源名称。 /// 加载字典资源的优先级。 public void ReadData(string dictionaryAssetName, int priority) { m_DataProvider.ReadData(dictionaryAssetName, priority); } /// /// 读取字典。 /// /// 字典资源名称。 /// 用户自定义数据。 public void ReadData(string dictionaryAssetName, object userData) { m_DataProvider.ReadData(dictionaryAssetName, userData); } /// /// 读取字典。 /// /// 字典资源名称。 /// 加载字典资源的优先级。 /// 用户自定义数据。 public void ReadData(string dictionaryAssetName, int priority, object userData) { m_DataProvider.ReadData(dictionaryAssetName, priority, userData); } /// /// 解析字典。 /// /// 要解析的字典字符串。 /// 是否解析字典成功。 public bool ParseData(string dictionaryString) { return m_DataProvider.ParseData(dictionaryString); } /// /// 解析字典。 /// /// 要解析的字典字符串。 /// 用户自定义数据。 /// 是否解析字典成功。 public bool ParseData(string dictionaryString, object userData) { return m_DataProvider.ParseData(dictionaryString, userData); } /// /// 解析字典。 /// /// 要解析的字典二进制流。 /// 是否解析字典成功。 public bool ParseData(byte[] dictionaryBytes) { return m_DataProvider.ParseData(dictionaryBytes); } /// /// 解析字典。 /// /// 要解析的字典二进制流。 /// 用户自定义数据。 /// 是否解析字典成功。 public bool ParseData(byte[] dictionaryBytes, object userData) { return m_DataProvider.ParseData(dictionaryBytes, userData); } /// /// 解析字典。 /// /// 要解析的字典二进制流。 /// 字典二进制流的起始位置。 /// 字典二进制流的长度。 /// 是否解析字典成功。 public bool ParseData(byte[] dictionaryBytes, int startIndex, int length) { return m_DataProvider.ParseData(dictionaryBytes, startIndex, length); } /// /// 解析字典。 /// /// 要解析的字典二进制流。 /// 字典二进制流的起始位置。 /// 字典二进制流的长度。 /// 用户自定义数据。 /// 是否解析字典成功。 public bool ParseData(byte[] dictionaryBytes, int startIndex, int length, object userData) { return m_DataProvider.ParseData(dictionaryBytes, startIndex, length, userData); } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典主键。 /// 要获取的字典内容字符串。 public string GetString(string key) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } return value; } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数的类型。 /// 字典主键。 /// 字典参数。 /// 要获取的字典内容字符串。 public string GetString(string key, T arg) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3}", key, value, arg, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4}", key, value, arg1, arg2, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5}", key, value, arg1, arg2, arg3, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6}", key, value, arg1, arg2, arg3, arg4, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7}", key, value, arg1, arg2, arg3, arg4, arg5, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典参数 9 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 字典参数 9。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典参数 9 的类型。 /// 字典参数 10 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 字典参数 9。 /// 字典参数 10。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典参数 9 的类型。 /// 字典参数 10 的类型。 /// 字典参数 11 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 字典参数 9。 /// 字典参数 10。 /// 字典参数 11。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典参数 9 的类型。 /// 字典参数 10 的类型。 /// 字典参数 11 的类型。 /// 字典参数 12 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 字典参数 9。 /// 字典参数 10。 /// 字典参数 11。 /// 字典参数 12。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典参数 9 的类型。 /// 字典参数 10 的类型。 /// 字典参数 11 的类型。 /// 字典参数 12 的类型。 /// 字典参数 13 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 字典参数 9。 /// 字典参数 10。 /// 字典参数 11。 /// 字典参数 12。 /// 字典参数 13。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); } catch (Exception exception) { return Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典参数 9 的类型。 /// 字典参数 10 的类型。 /// 字典参数 11 的类型。 /// 字典参数 12 的类型。 /// 字典参数 13 的类型。 /// 字典参数 14 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 字典参数 9。 /// 字典参数 10。 /// 字典参数 11。 /// 字典参数 12。 /// 字典参数 13。 /// 字典参数 14。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); } catch (Exception exception) { string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); return Utility.Text.Format("{0},{1},{2},{3}", key, value, args, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典参数 9 的类型。 /// 字典参数 10 的类型。 /// 字典参数 11 的类型。 /// 字典参数 12 的类型。 /// 字典参数 13 的类型。 /// 字典参数 14 的类型。 /// 字典参数 15 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 字典参数 9。 /// 字典参数 10。 /// 字典参数 11。 /// 字典参数 12。 /// 字典参数 13。 /// 字典参数 14。 /// 字典参数 15。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); } catch (Exception exception) { string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); return Utility.Text.Format("{0},{1},{2},{3}", key, value, args, exception); } } /// /// 根据字典主键获取字典内容字符串。 /// /// 字典参数 1 的类型。 /// 字典参数 2 的类型。 /// 字典参数 3 的类型。 /// 字典参数 4 的类型。 /// 字典参数 5 的类型。 /// 字典参数 6 的类型。 /// 字典参数 7 的类型。 /// 字典参数 8 的类型。 /// 字典参数 9 的类型。 /// 字典参数 10 的类型。 /// 字典参数 11 的类型。 /// 字典参数 12 的类型。 /// 字典参数 13 的类型。 /// 字典参数 14 的类型。 /// 字典参数 15 的类型。 /// 字典参数 16 的类型。 /// 字典主键。 /// 字典参数 1。 /// 字典参数 2。 /// 字典参数 3。 /// 字典参数 4。 /// 字典参数 5。 /// 字典参数 6。 /// 字典参数 7。 /// 字典参数 8。 /// 字典参数 9。 /// 字典参数 10。 /// 字典参数 11。 /// 字典参数 12。 /// 字典参数 13。 /// 字典参数 14。 /// 字典参数 15。 /// 字典参数 16。 /// 要获取的字典内容字符串。 public string GetString(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16) { string value = GetRawString(key); if (value == null) { return Utility.Text.Format("{0}", key); } try { return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); } catch (Exception exception) { string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); return Utility.Text.Format("{0},{1},{2},{3}", key, value, args, exception); } } /// /// 是否存在字典。 /// /// 字典主键。 /// 是否存在字典。 public bool HasRawString(string key) { if (string.IsNullOrEmpty(key)) { throw new GameFrameworkException("Key is invalid."); } return m_Dictionary.ContainsKey(key); } /// /// 根据字典主键获取字典值。 /// /// 字典主键。 /// 字典值。 public string GetRawString(string key) { if (string.IsNullOrEmpty(key)) { throw new GameFrameworkException("Key is invalid."); } string value = null; if (!m_Dictionary.TryGetValue(key, out value)) { return null; } return value; } /// /// 增加字典。 /// /// 字典主键。 /// 字典内容。 /// 是否增加字典成功。 public bool AddRawString(string key, string value) { if (string.IsNullOrEmpty(key)) { throw new GameFrameworkException("Key is invalid."); } if (m_Dictionary.ContainsKey(key)) { return false; } m_Dictionary.Add(key, value ?? string.Empty); return true; } /// /// 移除字典。 /// /// 字典主键。 /// 是否移除字典成功。 public bool RemoveRawString(string key) { if (string.IsNullOrEmpty(key)) { throw new GameFrameworkException("Key is invalid."); } return m_Dictionary.Remove(key); } /// /// 清空所有字典。 /// public void RemoveAllRawStrings() { m_Dictionary.Clear(); } } }