C# VS 2013-删除编译错误中的通用参数

C# VS 2013-删除编译错误中的通用参数,c#,visual-studio,visual-studio-2013,C#,Visual Studio,Visual Studio 2013,我最近在一些C#代码中遇到了一个问题,使用带有许多泛型参数的外部参数是最自然的解决方案。(事实上,问题在于我们的代码库有两个几乎相同的模块,代码重复的数量令人担忧。这些模块由结构上几乎相同的类组成,但它们之间的关联方式使得普通的OO抽象(接口/基类)不足以表达它们的共性。)因此,公共代码中的典型文件可能如下所示: public partial class Module<T1, T2, ..., TN> { public abstract class Foo {

我最近在一些C#代码中遇到了一个问题,使用带有许多泛型参数的外部参数是最自然的解决方案。(事实上,问题在于我们的代码库有两个几乎相同的模块,代码重复的数量令人担忧。这些模块由结构上几乎相同的类组成,但它们之间的关联方式使得普通的OO抽象(接口/基类)不足以表达它们的共性。)因此,公共代码中的典型文件可能如下所示:

public partial class Module<T1, T2, ..., TN>
{
    public abstract class Foo
    {
        public virtual T1 DoFoo(T2 t2, T3, t3)
        {
            //... 
        }
    }
}
模块
业务占用了大量空间,甚至很难看到错误是什么

理想情况下,我希望能够配置VS 2013/处理错误消息,这样就不包括通用参数,而是得到类似于

Error in Module<>.Foo.DoFoo missing ';'
Module.Foo.DoFoo中的
错误缺少“;”

通常,很多参数都是代码气味(无论是方法参数还是类型参数)。您似乎试图隐藏问题,而不是修复解决方案。虽然DRY是一个值得追求的目标,但它不应该以牺牲可读性为代价。David,我理解这种担忧。在这种情况下,我们不得不担心可理解代码和可维护代码之间的权衡。拥有两个较大(~12k)的模块,它们必须表现出完全相同的功能,并且彼此独立,这是维护的噩梦。我认为维护方面的担忧已经严重到足以证明一种可读性较差的替代方案是合理的。通常,很多参数都是代码气味(无论是方法参数还是类型参数)。您似乎试图隐藏问题,而不是修复解决方案。虽然DRY是一个值得追求的目标,但它不应该以牺牲可读性为代价。David,我理解这种担忧。在这种情况下,我们不得不担心可理解代码和可维护代码之间的权衡。拥有两个较大(~12k)的模块,它们必须表现出完全相同的功能,并且彼此独立,这是维护的噩梦。我认为维护方面的担忧已经严重到足以证明有理由选择一种可读性较差的替代方案。
Error in Module<>.Foo.DoFoo missing ';'