本文整理汇总了C#中SimpleType.ReplaceWith方法的典型用法代码示例。如果您正苦于以下问题:C# SimpleType.ReplaceWith方法的具体用法?C# SimpleType.ReplaceWith怎么用?C# SimpleType.ReplaceWith使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SimpleType
的用法示例。
在下文中一共展示了SimpleType.ReplaceWith方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VisitSimpleType
public override void VisitSimpleType (SimpleType simpleType)
{
base.VisitSimpleType (simpleType);
var td = GetTypeDef (simpleType);
if (td == null || !IsDelegate (td)) {
return;
}
var subs = new Dictionary<string, AstType> ();
var invoke = td.Methods.First (x => x.Name == "Invoke");
if (simpleType.TypeArguments.Count > 0) {
var ps = td.GenericParameters;
var i = 0;
foreach (var a in simpleType.TypeArguments) {
subs [ps [i].Name] = a;
i++;
}
}
var nt = new FunctionType ();
foreach (var p in invoke.Parameters) {
var pt = p.ParameterType.IsGenericParameter ? subs [p.ParameterType.Name] : GetTsType (p.ParameterType);
nt.Parameters.Add (new ParameterDeclaration (pt.Clone (), p.Name));
}
nt.ReturnType = invoke.ReturnType.IsGenericParameter ? subs [invoke.ReturnType.Name] : GetTsType (invoke.ReturnType);
if (nt.ReturnType is PrimitiveType) {
nt.ReturnType = MakePrimitiveTypesJsTypes.GetPrimitiveTypeReplacement ((PrimitiveType)nt.ReturnType);
}
foreach (var p in nt.Parameters) {
if (p.Type is PrimitiveType) {
p.Type = MakePrimitiveTypesJsTypes.GetPrimitiveTypeReplacement ((PrimitiveType)p.Type);
}
}
nt.AddAnnotation (td);
simpleType.ReplaceWith (nt);
}