C# 使用泛型返回类型的重载静态方法无效

C# 使用泛型返回类型的重载静态方法无效,c#,visual-studio-2010,static,C#,Visual Studio 2010,Static,我在静态类中定义了以下2个重载staic方法: private static Dictionary<int, PartitionDefinition> GetNewPartitionDefinitions (string measureGroup, int rangeThreshold) { do something; } private static Dictionary<int, PartitionDefinition> GetNewPar

我在静态类中定义了以下2个重载staic方法:

private static Dictionary<int, PartitionDefinition> GetNewPartitionDefinitions (string  measureGroup, int rangeThreshold)
    {
         do something;
}
private static Dictionary<int, PartitionDefinition> GetNewPartitionDefinitions(DateRange startDateRange)
{
do something else;
}
私有静态字典GetNewPartitionDefinitions(字符串度量组,int rangeThreshold)
{
做点什么;
}
专用静态字典GetNewPartitionDefinitions(日期范围StartDaterRange)
{
做点别的;
}
我得到的行为是,代码中首先列出的方法是在设计时识别的方法。链中随后的方法名称变灰,如果我将鼠标悬停在上面,我将收到消息“method is never used”

我还注意到,如果我试图调用该方法,intellisense只会检测代码中出现的第一个,就像另一个不存在一样

研究这个问题,我“相信”我可以消除类型擦除的问题,但我不是100%绝对肯定这一点

我知道以下代码对于使用泛型的类型擦除是有效的:

public class A {
 public static MethodOne  (List<String> param) {}
 public static MethodOne  (Dictionary<String,String> param) {}
}
公共A类{
公共静态MethodOne(列表参数){}
公共静态MethodOne(字典参数){}
}
但在本例中,泛型被作为参数传递,因此我可以看到这将如何导致问题。在我的例子中,只有返回类型是相同的泛型类型,但人们会认为,具有相同的方法名称,并且显然具有不同的非泛型参数类型和编号应该是可行的

有人能解释一下吗?我在这里看过类似的文章帖子,但似乎没有一篇能描述我所看到的确切问题


我对编程并不陌生,但我并不声称自己什么都懂,这对我来说是第一次。

您收到的消息可能是因为您在代码中没有使用methode,而重载静态方法的问题实际上是允许的,不应该是问题或导致任何编译器错误,您可能需要检查您的配置,以查看VS中的警告和提示

我刚刚使用以下代码对其进行了测试:

public static class TestClass
    {
        public static string stat(string measureGroup, int rangeThreshold)
        {
            return "st1";
        }

        public static string stat(int startDateRange)
        {
            return "st2";
        }

        private testmethode()
        {
           // string h = TestClass.stat(.... at this point i get both variants offered)
        }

    }

链中随后的方法名称变灰了,您使用的是ReSharper吗?考虑到“类型擦除”是Java中常用的术语,而不是C#,您在这里问的问题真的不清楚。你的“A类”代码就可以了。请展示一个简短但完整的程序来演示这个问题-你的问题太模糊,目前无法回答。是的,我正在使用Resharper。很抱歉,如果问题没有在您展示的类A中详细说明,那么您的静态方法没有指定任何返回类型。这仅仅是一个输入错误吗?MeNoMore为了满足Jon对更详细代码的要求,在尝试通过使用较短的简明代码创建两个方法来复制问题时,问题以某种方式得到了解决。因此,我必须得出结论,这个问题在某种程度上与VS2010环境中一些不明显的怪癖有关。因此,对于消息的来源,您是正确的,因为没有使用该方法,并且您明确表示我提供的示例“应该”起作用,所以我投票支持您的答案。@标记灰显是由Resharper完成的。很有可能VS2010在这里不是罪魁祸首。