本文整理汇总了C#中IronPython.Runtime.DictionaryStorage类的典型用法代码示例。如果您正苦于以下问题:C# DictionaryStorage类的具体用法?C# DictionaryStorage怎么用?C# DictionaryStorage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DictionaryStorage类属于IronPython.Runtime命名空间,在下文中一共展示了DictionaryStorage类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Remove
public override bool Remove(ref DictionaryStorage storage, object key) {
// check the strKey only if we have some exception info set
ExceptionState exState = _exceptionState;
if (exState != null || _setValues != 0) {
string strKey = key as string;
if (strKey != null) {
switch (strKey) {
case "exc_type":
lock (this) {
_excType = null;
_setValues &= ~ExceptionStateFlags.Type;
_removedValues |= ExceptionStateFlags.Type;
}
break;
case "exc_value":
lock (this) {
_excValue = null;
_setValues &= ~ExceptionStateFlags.Value;
_removedValues |= ExceptionStateFlags.Value;
}
break;
case "exc_traceback":
lock (this) {
_excTraceback = null;
_setValues &= ~ExceptionStateFlags.Traceback;
_removedValues |= ExceptionStateFlags.Traceback;
}
break;
}
}
}
return base.Remove(ref storage, key);
}
示例2: CopyTo
/// <summary>
/// Adds items from this dictionary into the other dictionary
/// </summary>
public virtual void CopyTo(DictionaryStorage/*!*/ into) {
Debug.Assert(into != null);
foreach (KeyValuePair<object, object> kvp in GetItems()) {
into.Add(kvp.Key, kvp.Value);
}
}
示例3: Remove
public override bool Remove(ref DictionaryStorage storage, object key) {
if (key is string) {
return TryRemoveExtraValue((string)key) ?? _storage.Remove(key);
}
return _storage.Remove(key);
}
示例4: AddNoLock
public override void AddNoLock(ref DictionaryStorage storage, object key, object value) {
// add always needs to check...
string strKey = key as string;
if (strKey != null) {
switch (strKey) {
case "exc_type":
_setValues |= ExceptionStateFlags.Type;
_removedValues &= ~ExceptionStateFlags.Type;
_excType = value;
break;
case "exc_value":
_setValues |= ExceptionStateFlags.Value;
_removedValues &= ~ExceptionStateFlags.Value;
_excValue = value;
break;
case "exc_traceback":
_setValues |= ExceptionStateFlags.Traceback;
_removedValues &= ~ExceptionStateFlags.Traceback;
_excTraceback = value;
break;
}
}
base.AddNoLock(ref storage, key, value);
}
示例5: Remove
public override bool Remove(ref DictionaryStorage storage, object key) {
if (_hidden.Contains(key)) {
return false;
}
return _data.Remove(key);
}
示例6: Remove
public override bool Remove(ref DictionaryStorage storage, object key) {
try {
PythonContext.GetContext(_context).DelIndex(_backing, key);
return true;
} catch (KeyNotFoundException) {
return false;
}
}
示例7: Add
public override void Add(ref DictionaryStorage storage, object key, object value) {
string strKey = key as string;
if (strKey != null) {
_data[SymbolTable.StringToId(strKey)] = value;
} else {
_data.AddObjectKey(key, value);
}
}
示例8: Remove
public override bool Remove(ref DictionaryStorage storage, object key) {
string strKey = key as string;
if (strKey != null) {
return _data.Remove(SymbolTable.StringToId(strKey));
} else {
return _data.RemoveObjectKey(key);
}
}
示例9: Add
public override void Add(ref DictionaryStorage storage, object key, object value) {
string strKey = key as string;
if (strKey != null) {
PythonOps.ScopeSetMember(_context.SharedContext, _scope, strKey, value);
} else {
PythonScopeExtension ext = (PythonScopeExtension)_context.EnsureScopeExtension(_scope);
ext.EnsureObjectKeys().Add(key, value);
}
}
示例10: Add
public override void Add(ref DictionaryStorage storage, object key, object value) {
string strkey = key as string;
if (strkey != null) {
if (strkey == "__import__") {
_import = value;
}
_change(this, new ModuleChangeEventArgs(strkey, ModuleChangeType.Set, value));
}
base.Add(ref storage, key, value);
}
示例11: Remove
public override bool Remove(ref DictionaryStorage storage, object key) {
string strkey = key as string;
if (strkey != null) {
if (strkey == "__import__") {
_import = null;
}
_change(this, new ModuleChangeEventArgs(strkey, ModuleChangeType.Delete));
}
return base.Remove(ref storage, key);
}
示例12: Add
public override void Add(ref DictionaryStorage storage, object key, object value) {
lock (this) {
string strKey = key as string;
if (strKey != null) {
_dict[strKey] = value;
} else {
EnsureObjectDictionary();
_objDict[BaseSymbolDictionary.NullToObj(key)] = value;
}
}
}
示例13: Clear
public override void Clear(ref DictionaryStorage storage) {
lock (this) {
if (storage == this) {
storage = EmptyDictionaryStorage.Instance;
return;
}
}
// race, try again
storage.Clear(ref storage);
}
示例14: Add
public override void Add(ref DictionaryStorage storage, object key, object value) {
lock (this) {
if (storage == this) {
CommonDictionaryStorage newStorage = new CommonDictionaryStorage();
newStorage.AddNoLock(key, value);
storage = newStorage;
return;
}
}
// race, try again...
storage.Add(ref storage, key, value);
}
示例15: Remove
public override bool Remove(ref DictionaryStorage storage, object key) {
lock (this) {
string strKey = key as string;
if (strKey != null) {
return _dict.Remove(strKey);
}
if (_objDict != null) {
return _objDict.Remove(BaseSymbolDictionary.NullToObj(key));
}
return false;
}
}