c# – 使用ReSharper将Foo和Foo移动到匹配的文件

我想使用ReSharper Move Types Into Matching Files功能来移动下面的代码,该代码用单个.cs’编写.文件:

public abstract class Foo
{

}

public abstract class Foo<T> : Foo
{

}

执行ReSharper重构会导致此异常:

Can not move class Foo because there is another declaration that
will be moved into file ‘Foo.cs’.

我可以想到两个结果,或者我都可以:

>移动Foo和Too< T>进入Foo.cs
>将Foo移动到Foo.cs并移动Foo< T>进入FooOfT.cs

所以,问题仍然存在:

>还有另一种与resharper不冲突的最佳命名实践吗?或者
>有没有办法配置ReSharper来支持这个命名?

注意

>因为泛型对于每种可能的约束组合都是唯一的,所以Foo类是我的接口类.因此,我不会重命名Foo< T>到Bar< T>.
>我不希望将Foo重命名为FooBase,因为它已经是一个抽象类,它使显式的“Base”后缀变得多余.
>我无法将Foo重构为IFoo,因为Foo是我的概念界面(因为需要基本实现).

最佳答案 据我所知,没有办法告诉Resharper附加文件名的泛型参数.它将仅使用类名,即Foo,Foo< T>.和Foo< A,B,C>所有都有Foo.cs作为文件名,但是 – 这就是问题 – ReSharper似乎不知道这种可能性存在并且会在这种情况下向您显示错误.除了
logging a bug or feature request之外,你真的无能为力.

点赞