本文整理汇总了C#中IClass.InsertAfterInitialFields方法的典型用法代码示例。如果您正苦于以下问题:C# IClass.InsertAfterInitialFields方法的具体用法?C# IClass.InsertAfterInitialFields怎么用?C# IClass.InsertAfterInitialFields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IClass
的用法示例。
在下文中一共展示了IClass.InsertAfterInitialFields方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateRDomConstructor
private static RDomConstructor CreateRDomConstructor(IClass cl)
{
var constructor = new RDomConstructor(cl.Name, AccessModifier.Public, constructorInitializerType: ConstructorInitializerType.This);
var nullParam = new RDomArgument(RDom.CSharp.ParseExpression("null"));
constructor.InitializationArguments.AddOrMoveRange(new IArgument[] { nullParam, nullParam.Copy(), nullParam.Copy() });
cl.InsertAfterInitialFields(constructor);
return constructor;
}
示例2: AddConstructor
private bool AddConstructor(IClass cl)
{
RDomConstructor constructor = CreateRDomConstructor(cl);
triviaManager.StoreStringWhitespace(constructor, LanguageElement.ParameterEndDelimiter, "", "\r\n");
triviaManager.StoreStringWhitespace(constructor, LanguageElement.ConstructorInitializerPrefix, " ", "");
var properties = cl.Properties.Where(x => x.CanSet && x.CanGet);
var assignments = new List<IAssignmentStatement>();
assignments.Add(new RDomAssignmentStatement(
RDom.CSharp.ParseExpression("NeedsFormatting"),
RDom.CSharp.ParseExpression("true")));
triviaManager.StoreStringWhitespace(assignments.First(), LanguageElement.EndOfLine, "", "\r\n");
var altConstructorPairs = new List<Tuple<RDomParameter, RDomParameter, RDomArgument>>();
foreach (var prop in properties)
{
RDomParameter param = CreateParameter(assignments, altConstructorPairs, prop);
constructor.Parameters.AddOrMove(param);
}
constructor.StatementsAll.AddOrMoveRange(assignments);
if (altConstructorPairs.Any())
{
IConstructor altConstructor = CreateAlternateConstructor(constructor, altConstructorPairs);
cl.InsertAfterInitialFields(altConstructor);
}
return true;
}