本文整理汇总了C#中IronPython.Runtime.Types.PythonType.TryLookupSlot方法的典型用法代码示例。如果您正苦于以下问题:C# PythonType.TryLookupSlot方法的具体用法?C# PythonType.TryLookupSlot怎么用?C# PythonType.TryLookupSlot使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IronPython.Runtime.Types.PythonType
的用法示例。
在下文中一共展示了PythonType.TryLookupSlot方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TryLookupInBase
private bool TryLookupInBase(CodeContext context, PythonType pt, string name, object self, out object value) {
PythonTypeSlot dts;
if (pt.OldClass == null) {
// new-style class, or reflected type, lookup slot
if (pt.TryLookupSlot(context, name, out dts) &&
dts.TryGetValue(context, self, DescriptorContext, out value)) {
return true;
}
} else {
// old-style class, lookup attribute
OldClass dt = pt.OldClass;
if (PythonOps.TryGetBoundAttr(context, dt, name, out value)) {
value = OldClass.GetOldStyleDescriptor(context, value, self, DescriptorContext);
return true;
}
}
value = null;
return false;
}
示例2: LookupValue
private static bool LookupValue(PythonType dt, object instance, SymbolId name, out object value) {
PythonTypeSlot dts;
if (dt.TryLookupSlot(DefaultContext.Default, name, out dts) &&
dts.TryGetValue(DefaultContext.Default, instance, dt, out value)) {
return true;
}
value = null;
return false;
}
示例3: Get__doc__
public static object Get__doc__(CodeContext/*!*/ context, PythonType self) {
PythonTypeSlot pts;
object res;
if (self.TryLookupSlot(context, Symbols.Doc, out pts) &&
pts.TryGetValue(context, null, self, out res)) {
return res;
} else if (self.IsSystemType) {
return PythonTypeOps.GetDocumentation(self.UnderlyingSystemType);
}
return null;
}