本文整理汇总了C#中PropertyDeclaration.ReplaceWith方法的典型用法代码示例。如果您正苦于以下问题:C# PropertyDeclaration.ReplaceWith方法的具体用法?C# PropertyDeclaration.ReplaceWith怎么用?C# PropertyDeclaration.ReplaceWith使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PropertyDeclaration
的用法示例。
在下文中一共展示了PropertyDeclaration.ReplaceWith方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VisitPropertyDeclaration
public override void VisitPropertyDeclaration (PropertyDeclaration p)
{
if (p.Getter != null && p.Getter.Body.IsNull && p.Setter != null && p.Setter.Body.IsNull) {
var f = new FieldDeclaration {
Modifiers = p.Modifiers,
ReturnType = p.ReturnType.Clone (),
};
f.Variables.Add (new VariableInitializer (p.Name));
p.ReplaceWith (f);
} else {
foreach (var a in p.Children.OfType<Accessor> ()) {
// a.Body.Remove ();
var getter = a.Role == PropertyDeclaration.GetterRole;
var fun = new MethodDeclaration {
Body = (BlockStatement)a.Body.Clone(),
Name = (getter ? "get " : "set ") + p.Name,
Modifiers = p.Modifiers,
};
fun.AddAnnotation (a);
if (getter) {
fun.ReturnType = p.ReturnType.Clone ();
}
else {
fun.ReturnType = new PrimitiveType ("void");
fun.Parameters.Add (new ParameterDeclaration {
Name = "value",
Type = p.ReturnType.Clone (),
});
}
p.Parent.InsertChildAfter (p, fun, Roles.TypeMemberRole);
}
p.Remove ();
}
}