我想做什么:
我正在使用roslyn编写代码重构.我的目标是开辟出一种优势.所以我正在做的基本上是我删除所有私人工作人员并用一个新的NotImplementedException()替换非私人工作人员的身体.
我的问题是什么:
一切正常,但我最终得到了很多代码重复,如下所示:
private static bool IsPrivate(TypeDeclarationSyntax type) { return type.Modifiers.Any(IsPrivateModifier); } private static bool IsPrivate(MethodDeclarationSyntax method) { return method.Modifiers.Any(IsPrivateModifier); } private static bool IsPrivate(FieldDeclarationSyntax field) { return field.Modifiers.Any(IsPrivateModifier); } private static bool IsPrivate(PropertyDeclarationSyntax property) { return property.Modifiers.Any(IsPrivateModifier); } private static bool IsPrivate(IndexerDeclarationSyntax property) { return property.Modifiers.Any(IsPrivateModifier); } private static bool IsPrivateModifier(SyntaxToken modifier) { return modifier.Kind() == SyntaxKind.PrivateKeyword; }
原因是我需要使用属性Members,并且没有公共基类型或接口用于声明成员的语法类.我对属性Body有同样的问题,这是所有这些共同的,没有共同的基础或公共接口.
问题:
有没有理由为什么API设计是这样的,或者我错过了什么?我是否有任何模式可以避免在这些和许多其他类似情况下重复.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。