📄 abstractclassimplementorcodegenerator.cs
字号:
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version>$Revision: 1449 $</version>
// </file>
using System;
using System.Collections;
using System.Collections.Generic;
using ICSharpCode.NRefactory.Parser.AST;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Refactoring;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
{
public class AbstractClassImplementorCodeGenerator : InterfaceOrAbstractClassCodeGenerator
{
public override string CategoryName {
get {
return "${res:ICSharpCode.SharpDevelop.CodeGenerator.AbstractClass}";
}
}
public override string Hint {
get {
return "${res:ICSharpCode.SharpDevelop.CodeGenerator.AbstractClass.Hint}";
}
}
public override void GenerateCode(List<AbstractNode> nodes, IList items)
{
foreach (IProperty property in currentClass.DefaultReturnType.GetProperties()) {
if (property.IsAbstract) {
AttributedNode node = CodeGenerator.ConvertMember(property, classFinderContext);
node.Modifier &= ~Modifier.Abstract;
node.Modifier |= Modifier.Override;
nodes.Add(node);
}
}
foreach (IMethod method in currentClass.DefaultReturnType.GetMethods()) {
if (method.IsAbstract) {
AttributedNode node = CodeGenerator.ConvertMember(method, classFinderContext);
node.Modifier &= ~Modifier.Abstract;
node.Modifier |= Modifier.Override;
nodes.Add(node);
}
}
}
protected override void InitContent()
{
if (currentClass.ClassType != ICSharpCode.SharpDevelop.Dom.ClassType.Class)
return;
for (int i = 0; i < currentClass.BaseTypes.Count; i++) {
IReturnType baseType = currentClass.GetBaseType(i);
IClass baseClass = (baseType != null) ? baseType.GetUnderlyingClass() : null;
if (baseClass != null && baseClass.ClassType == ICSharpCode.SharpDevelop.Dom.ClassType.Class && baseClass.IsAbstract) {
Content.Add(new ClassWrapper(baseType));
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -