【问题标题】:"The call is ambiguous" (Calling a method with the same data structure)“调用不明确”(调用具有相同数据结构的方法)
【发布时间】:2013-07-15 15:42:00
【问题描述】:

我正在尝试使用 (recent) 系统变量调用方法 (EmptyFolderContents),但我收到以下消息:

以下方法或属性之间的调用不明确

那么我该如何重命名/更改它呢?

String recent = Environment.ExpandEnvironmentVariables("%USERPROFILE%") + "\\Recent";

EmptyFolderContents(recent);

private void EmptyFolderContents(string folderName)
{
    foreach (var folder in Directory.GetDirectories(folderName))
    {
        try
        {
            Directory.Delete(folder, true);
        }
        catch (Exception excep)
        {
            System.Diagnostics.Debug.WriteLine(excep);
        }
    }

    foreach (var file in Directory.GetFiles(folderName))
    {
        try
        {
            File.Delete(file);
        }
        catch (Exception excep)
        {
            System.Diagnostics.Debug.WriteLine(excep);
        }
    }
}

【问题讨论】:

  • 这意味着您在同一范围内有2个具有相同签名的方法。所以只需将任何一种方法的名称更改为 EmptyFolderContents_New
  • 提供完整的错误信息。这意味着您在同一个类中有另一个具有相同名称/参数的方法
  • 听起来 Windows 无法判断您是要删除该文件夹中的快捷方式(.lnk 文件)还是快捷方式指向的文件。我会小心这个。

标签: c# string methods


【解决方案1】:

这意味着您在同一个范围中有两个具有相同签名的方法。从范围中删除不需要的方法或将任何一种方法的名称更改为某物

       private void EmptyFolderContents_New(string folderName)

然后这样称呼它

       EmptyFolderContents_New(recent); 

【讨论】:

  • 谢谢,我找到了同名的方法,我不知道它是如何到达那里的:O。无论如何谢谢(:
  • @Candie 然后将其标记为答案。 :)
  • 我会的 (: 不过要等 5 分钟
猜你喜欢
  • 2011-11-01
  • 1970-01-01
  • 2011-12-26
  • 2014-07-22
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 2012-04-26
相关资源
最近更新 更多