本文整理汇总了C#中CppSharp.AST.Method.GetFunctionType方法的典型用法代码示例。如果您正苦于以下问题:C# Method.GetFunctionType方法的具体用法?C# Method.GetFunctionType怎么用?C# Method.GetFunctionType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CppSharp.AST.Method
的用法示例。
在下文中一共展示了Method.GetFunctionType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HandleQSignal
private void HandleQSignal(Class @class, Method method)
{
for (int i = 0; i < @class.Specifiers.Count; i++)
{
var accessSpecifierDecl = @class.Specifiers[i];
if (accessSpecifierDecl.DebugText == "Q_SIGNALS:" &&
accessSpecifierDecl.LineNumberStart < method.LineNumberStart &&
(i == @class.Specifiers.Count - 1 || method.LineNumberEnd <= @class.Specifiers[i + 1].LineNumberStart))
{
if (method.Parameters.Any())
{
Class decl;
if (method.Parameters.Last().Type.Desugar().TryGetClass(out decl) && decl.Name == "QPrivateSignal")
{
method.Parameters.RemoveAt(method.Parameters.Count - 1);
}
}
var functionType = method.GetFunctionType();
var @event = new Event
{
OriginalDeclaration = method,
Name = method.Name,
OriginalName = method.OriginalName,
Namespace = method.Namespace,
QualifiedType = new QualifiedType(functionType),
Parameters = method.Parameters
};
if (method.IsGenerated)
{
method.ExplicitlyIgnore();
}
@class.Events.Add(@event);
this.events.Add(@event);
return;
}
}
}
示例2: HandleQSignal
private void HandleQSignal(DeclarationContext @class, Method method)
{
AccessSpecifierDecl access = method.AccessDecl;
IEnumerable<MacroExpansion> expansions = access.PreprocessedEntities.OfType<MacroExpansion>();
if (expansions.All(e => e.Text != "Q_SIGNALS"))
{
return;
}
if (method.Parameters.Any())
{
Declaration decl;
if (method.Parameters.Last().Type.IsTagDecl(out decl) && decl.Name == "QPrivateSignal")
{
method.Parameters.RemoveAt(method.Parameters.Count - 1);
}
}
FunctionType functionType = method.GetFunctionType();
Event @event = new Event
{
OriginalDeclaration = method,
Name = method.Name,
OriginalName = method.OriginalName,
Namespace = method.Namespace,
QualifiedType = new QualifiedType(functionType),
Parameters = method.Parameters
};
method.IsGenerated = false;
@class.Events.Add(@event);
this.events.Add(@event);
}
示例3: HandleQSignal
private void HandleQSignal(DeclarationContext @class, Method method)
{
var expansions = method.AccessDecl.PreprocessedEntities.OfType<MacroExpansion>();
if (expansions.All(e => e.Text != "Q_SIGNALS"))
{
return;
}
if (method.Parameters.Any())
{
Class decl;
if (method.Parameters.Last().Type.TryGetClass(out decl) && decl.Name == "QPrivateSignal")
{
method.Parameters.RemoveAt(method.Parameters.Count - 1);
}
}
var functionType = method.GetFunctionType();
var @event = new Event
{
OriginalDeclaration = method,
Name = method.Name,
OriginalName = method.OriginalName,
Namespace = method.Namespace,
QualifiedType = new QualifiedType(functionType),
Parameters = method.Parameters
};
method.GenerationKind = GenerationKind.None;
@class.Events.Add(@event);
this.events.Add(@event);
}