本文整理汇总了C#中System.Compiler.TypeNode.GetReferenceType方法的典型用法代码示例。如果您正苦于以下问题:C# TypeNode.GetReferenceType方法的具体用法?C# TypeNode.GetReferenceType怎么用?C# TypeNode.GetReferenceType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Compiler.TypeNode
的用法示例。
在下文中一共展示了TypeNode.GetReferenceType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ApplySignature
public TypeNode ApplySignature(TypeNode type) {
foreach (var sig in this.signature)
switch (sig) {
case ByRefSignature:
type = type.GetReferenceType();
break;
case PointerSignature:
type = type.GetPointerType();
break;
case SzArraySignature:
type = type.GetArrayType(1);
break;
default:
type = type.GetArrayType(sig, true);
break;
}
return type;
}
示例2: ParseTypeCheck
private static Expression/*!*/ ParseTypeCheck(Expression operand, TypeNode type, NodeType typeOfCheck) {
TypeNode etype = type;
if (typeOfCheck == NodeType.Unbox) etype = type.GetReferenceType();
Expression expr = new BinaryExpression(operand, new Literal(type, CoreSystemTypes.Type), typeOfCheck, etype);
return expr;
}
示例3: GetThisTypeInstance
private TypeNode GetThisTypeInstance(TypeNode templateType, TypeNode wrapperType, TypeNode constraintTypeParam)
{
if (constraintTypeParam != null) {
return constraintTypeParam.GetReferenceType();
}
TypeNode thisType = templateType;
if (thisType.TemplateParameters != null && thisType.TemplateParameters.Count > 0) {
// need selfinstantiation
thisType = thisType.GetGenericTemplateInstance(this.assemblyBeingRewritten, wrapperType.ConsolidatedTemplateParameters);
}
if (templateType.IsValueType) {
thisType = thisType.GetReferenceType();
}
return thisType;
}