本文整理汇总了C#中ASCompletion.Model.ClassModel.IsVoid方法的典型用法代码示例。如果您正苦于以下问题:C# ClassModel.IsVoid方法的具体用法?C# ClassModel.IsVoid怎么用?C# ClassModel.IsVoid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ASCompletion.Model.ClassModel
的用法示例。
在下文中一共展示了ClassModel.IsVoid方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateImplementation
private static void GenerateImplementation(ClassModel iType, ClassModel inClass, ScintillaControl sci, bool detached)
{
List<string> typesUsed = new List<string>();
StringBuilder sb = new StringBuilder();
string header = TemplateUtils.ReplaceTemplateVariable(TemplateUtils.GetTemplate("ImplementHeader"), "Class",
iType.Type);
header = TemplateUtils.ReplaceTemplateVariable(header, "BlankLine", detached ? BlankLine : null);
sb.Append(header);
sb.Append(NewLine);
bool entry = true;
ASResult result = new ASResult();
IASContext context = ASContext.Context;
ContextFeatures features = context.Features;
bool canGenerate = false;
bool isHaxe = IsHaxe;
FlagType flags = (FlagType.Function | FlagType.Getter | FlagType.Setter);
if (isHaxe) flags |= FlagType.Variable;
iType.ResolveExtends(); // resolve inheritance chain
while (!iType.IsVoid() && iType.QualifiedName != "Object")
{
foreach (MemberModel method in iType.Members)
{
if ((method.Flags & flags) == 0
|| method.Name == iType.Name)
continue;
// check if method exists
ASComplete.FindMember(method.Name, inClass, result, method.Flags, 0);
if (!result.IsNull()) continue;
string decl;
if ((method.Flags & FlagType.Getter) > 0)
{
if (isHaxe)
{
decl = TemplateUtils.ToDeclarationWithModifiersString(method, TemplateUtils.GetTemplate("Property"));
string templateName = null;
string metadata = null;
if (method.Parameters[0].Name == "get")
{
if (method.Parameters[1].Name == "set")
{
templateName = "GetterSetter";
metadata = "@:isVar";
}
else
templateName = "Getter";
}
else if (method.Parameters[1].Name == "set")
{
templateName = "Setter";
}
decl = TemplateUtils.ReplaceTemplateVariable(decl, "MetaData", metadata);
if (templateName != null)
{
var accessor = NewLine + TemplateUtils.ToDeclarationString(method, TemplateUtils.GetTemplate(templateName));
accessor = TemplateUtils.ReplaceTemplateVariable(accessor, "Modifiers", null);
accessor = TemplateUtils.ReplaceTemplateVariable(accessor, "Member", method.Name);
decl += accessor;
}
}
else
decl = TemplateUtils.ToDeclarationWithModifiersString(method, TemplateUtils.GetTemplate("Getter"));
}
else if ((method.Flags & FlagType.Setter) > 0)
decl = TemplateUtils.ToDeclarationWithModifiersString(method, TemplateUtils.GetTemplate("Setter"));
else if ((method.Flags & FlagType.Function) > 0)
decl = TemplateUtils.ToDeclarationWithModifiersString(method, TemplateUtils.GetTemplate("Function"));
else
decl = NewLine + TemplateUtils.ToDeclarationWithModifiersString(method, TemplateUtils.GetTemplate("Variable"));
decl = TemplateUtils.ReplaceTemplateVariable(decl, "Member", "_" + method.Name);
decl = TemplateUtils.ReplaceTemplateVariable(decl, "Void", features.voidKey);
decl = TemplateUtils.ReplaceTemplateVariable(decl, "Body", null);
decl = TemplateUtils.ReplaceTemplateVariable(decl, "BlankLine", NewLine);
if (!entry)
{
decl = TemplateUtils.ReplaceTemplateVariable(decl, "EntryPoint", null);
}
decl += NewLine;
entry = false;
sb.Append(decl);
canGenerate = true;
AddTypeOnce(typesUsed, GetQualifiedType(method.Type, iType));
if (method.Parameters != null && method.Parameters.Count > 0)
foreach (MemberModel param in method.Parameters)
AddTypeOnce(typesUsed, GetQualifiedType(param.Type, iType));
//.........这里部分代码省略.........
示例2: GenerateImplementation
private static void GenerateImplementation(ClassModel aType, int position)
{
List<string> typesUsed = new List<string>();
StringBuilder sb = new StringBuilder(TemplateUtils.ReplaceTemplateVariable(TemplateUtils.GetTemplate("ImplementHeader"), "Class", aType.Type));
sb.Append(NewLine);
bool entry = true;
ASResult result = new ASResult();
IASContext context = ASContext.Context;
ClassModel cClass = context.CurrentClass;
ContextFeatures features = context.Features;
bool canGenerate = false;
aType.ResolveExtends(); // resolve inheritance chain
while (!aType.IsVoid() && aType.QualifiedName != "Object")
{
foreach (MemberModel method in aType.Members)
{
if ((method.Flags & (FlagType.Function | FlagType.Getter | FlagType.Setter)) == 0
|| method.Name == aType.Name)
continue;
// check if method exists
ASComplete.FindMember(method.Name, cClass, result, method.Flags, 0);
if (!result.IsNull()) continue;
string decl = entry ? NewLine : "";
if ((method.Flags & FlagType.Getter) > 0)
decl = TemplateUtils.ToDeclarationWithModifiersString(method, TemplateUtils.GetTemplate("Getter"));
else if ((method.Flags & FlagType.Setter) > 0)
decl = TemplateUtils.ToDeclarationWithModifiersString(method, TemplateUtils.GetTemplate("Setter"));
else
decl = TemplateUtils.ToDeclarationWithModifiersString(method, TemplateUtils.GetTemplate("Function"));
decl = TemplateUtils.ReplaceTemplateVariable(decl, "Member", "_" + method.Name);
decl = TemplateUtils.ReplaceTemplateVariable(decl, "Void", features.voidKey);
decl = TemplateUtils.ReplaceTemplateVariable(decl, "Body", null);
decl = TemplateUtils.ReplaceTemplateVariable(decl, "BlankLine", NewLine);
if (!entry)
{
decl = TemplateUtils.ReplaceTemplateVariable(decl, "EntryPoint", null);
}
decl += NewLine;
entry = false;
sb.Append(decl);
canGenerate = true;
addTypeOnce(typesUsed, getQualifiedType(method.Type, aType));
if (method.Parameters != null && method.Parameters.Count > 0)
foreach (MemberModel param in method.Parameters)
addTypeOnce(typesUsed, getQualifiedType(param.Type, aType));
}
// interface inheritance
aType = aType.Extends;
}
if (!canGenerate)
return;
ScintillaNet.ScintillaControl Sci = ASContext.CurSciControl;
Sci.BeginUndoAction();
try
{
position = Sci.CurrentPos;
if (ASContext.Context.Settings.GenerateImports && typesUsed.Count > 0)
{
int offset = AddImportsByName(typesUsed, Sci.LineFromPosition(position));
position += offset;
Sci.SetSel(position, position);
}
InsertCode(position, sb.ToString());
}
finally { Sci.EndUndoAction(); }
}
示例3: GenerateImplementation
private static void GenerateImplementation(ClassModel aType, int position)
{
List<string> typesUsed = new List<string>();
StringBuilder sb = new StringBuilder(String.Format(GetTemplate("ImplementHeader"), aType.Type));
string entry = "$(EntryPoint)";
ASResult result = new ASResult();
IASContext context = ASContext.Context;
ClassModel cClass = context.CurrentClass;
ContextFeatures features = context.Features;
bool canGenerate = false;
string template = GetTemplate("ImplementPart");
aType.ResolveExtends(); // resolve inheritance chain
while (!aType.IsVoid() && aType.QualifiedName != "Object")
{
foreach (MemberModel method in aType.Members)
{
if ((method.Flags & (FlagType.Function | FlagType.Getter | FlagType.Setter)) == 0
|| method.Name == aType.Name)
continue;
// check if method exists
ASComplete.FindMember(method.Name, cClass, result, method.Flags, 0);
if (!result.IsNull()) continue;
string decl = String.Format(template, GetDeclaration(method), entry);
entry = "";
sb.Append(decl);
canGenerate = true;
addTypeOnce(typesUsed, getQualifiedType(method.Type, aType));
if (method.Parameters != null && method.Parameters.Count > 0)
foreach (MemberModel param in method.Parameters)
addTypeOnce(typesUsed, getQualifiedType(param.Type, aType));
}
// interface inheritance
aType = aType.Extends;
}
if (!canGenerate)
return;
ScintillaNet.ScintillaControl Sci = ASContext.CurSciControl;
Sci.BeginUndoAction();
try
{
position = Sci.CurrentPos;
if (ASContext.Context.Settings.GenerateImports && typesUsed.Count > 0)
{
int offset = AddImportsByName(typesUsed, Sci.LineFromPosition(position));
position += offset;
Sci.SetSel(position, position);
}
InsertCode(position, sb.ToString());
}
finally { Sci.EndUndoAction(); }
}