public GetString ( String name, bool ignoreCase ) : String | ||
name | String | |
ignoreCase | bool | |
Результат | String |
public virtual String GetString(String name, bool ignoreCase)
{
Hashtable copyOfTable = Table; // Avoid a race with Dispose
if (copyOfTable == null)
throw new ObjectDisposedException(null, Environment.GetResourceString("ObjectDisposed_ResourceSet"));
if (name==null)
throw new ArgumentNullException("name");
String s;
try {
s = (String) copyOfTable[name];
}
catch (InvalidCastException) {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_ResourceNotString_Name", name));
}
if (s != null || !ignoreCase)
return s;
// Try doing a case-insensitive lookup.
Hashtable caseTable = _caseInsensitiveTable; // Avoid race with Close
if (caseTable == null) {
caseTable = new Hashtable(StringComparer.OrdinalIgnoreCase);
#if _DEBUG
//Console.WriteLine("ResourceSet::GetString loading up data. ignoreCase: "+ignoreCase);
BCLDebug.Perf(!ignoreCase, "Using case-insensitive lookups is bad perf-wise. Consider capitalizing "+name+" correctly in your source");
#endif
IDictionaryEnumerator en = copyOfTable.GetEnumerator();
while (en.MoveNext()) {
caseTable.Add(en.Key, en.Value);
}
_caseInsensitiveTable = caseTable;
}
try {
return (String) caseTable[name];
}
catch (InvalidCastException) {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_ResourceNotString_Name", name));
}
}
ResourceSet::GetString ( String name ) : String |
public virtual string GetString(string name, CultureInfo culture) { if (name == null) { throw new ArgumentNullException("Name is null."); } if (culture == null) { culture = CultureInfo.CurrentUICulture; } lock (this) { ResourceSet set = InternalGetResourceSet(culture, true, true); string str = null; if (set != null) { str = set.GetString(name, ignoreCase); if (str != null) { return(str); } } /* Try parent cultures */ do { culture = culture.Parent; set = InternalGetResourceSet(culture, true, true); if (set != null) { str = set.GetString(name, ignoreCase); if (str != null) { return(str); } } } while(!culture.Equals(neutral_culture) && !culture.Equals(CultureInfo.InvariantCulture)); } return(null); }