C# 使用自定义方法的两个实例会导致“调用不明确”

C# 使用自定义方法的两个实例会导致“调用不明确”,c#,C#,我在编译代码时遇到问题,编译器出现以下错误: 以下方法或属性之间的调用不明确:“ActionTracker.DataAccess.GetSpecialtyCodestring”和ActionTracker.DataAccess.GetSpecialtyCode 我只是在一个新方法中再次使用我的自定义方法。我使用了与此完全相同的另一种方法,我没有得到任何歧义错误。有人能帮忙吗?我是n00b:D namespace ActionTracker { using ... internal cl

我在编译代码时遇到问题,编译器出现以下错误:

以下方法或属性之间的调用不明确:“ActionTracker.DataAccess.GetSpecialtyCodestring”和ActionTracker.DataAccess.GetSpecialtyCode

我只是在一个新方法中再次使用我的自定义方法。我使用了与此完全相同的另一种方法,我没有得到任何歧义错误。有人能帮忙吗?我是n00b:D

namespace ActionTracker
{
  using ...
   internal class DataAccess
   { 
     internal static string GetSpecialtyCode(string name)
     {
         OleDbConnection speccconn = SetUpConnection();
         speccconn.Open();
         OleDbCommand specccmd = new OleDbCommand("SELECT Specialty_Code FROM tbl_specialty WHERE Specialty_Description = @Specialty_Description", speccconn);

         specccmd.Parameters.Add("@Specialty_Description", OleDbType.VarWChar, 255).Value = name;

         string code = (string)specccmd.ExecuteScalar();
         speccconn.Close();
         return code;
     }

     internal static string AddVisitSpecialty(string trust_name, DateTime visit_date, string visit_type, List<string> specialties)
     {
          int visit_id = GetVisitID(trust_name, visit_date, visit_type);
          OleDbConnection visitspeccon = SetUpConnection();
          visitspeccon.Open();

          foreach (string element in specialties)
          {
            string specialty_code = new GetSpecialtyCode(element);
            OleDbCommand visitspeccmmd = new OleDbCommand("INSERT INTO tbl_visit_specialty (Visit_ID, Visit_Specialty) VALUES"
            + "(@visit_id, @visit_specialty)", visitspeccon);
            visitspeccmmd.Parameters.Add("@visit_id", OleDbType.Numeric).Value = visit_id;
            visitspeccmmd.Parameters.Add("@visit_specialty", OleDbType.VarWChar, 255).Value = specialty_code;
            visitspeccmmd.ExecuteNonQuery();

           }

           visitspeccon.Close();

           string message = "Specialty(s) added to visit";
           return message;
     }

     internal static string DeleteVisitSpecialty(int visit_id, List<string> specialty_list)
     {
         OleDbConnection delvscon = SetUpConnection();
         delvscon.Open();     
         List<string> specialty_codes = new List<string>();

        foreach (string element in specialty_list)
        {
            string specialty_code = GetSpecialtyCode(element);            
            OleDbCommand delvscmd = new OleDbCommand("DELETE FROM tbl_visit_specilaty WHERE Visit_ID = @visit_id AND Visit_Specialty = @visit_specialty", delvscon);
            delvscmd.Parameters.Add("@visit_id", OleDbType.Numeric).Value = visit_id;
            delvscmd.Parameters.Add("@visit_specialty", OleDbType.VarWChar, 255).Value = specialty_code;
            delvscmd.ExecuteNonQuery();
        }

         delvscon.Close();
         string message = "Specialty(s) deleted";
         return message;
      }
   }
}

我认为你的问题在于AddVisitSpecialty的这句话:

string specialty_code = new GetSpecialtyCode(element);

查看如果删除该新代码会发生什么。

是否有名为GetSpecialtyCode或类似的属性?您在两个不同的位置定义了GetSpecialtyCode。而另一个定义不在您复制的代码块中。我没有任何属性在选中MatchCase选项的GetSpecialtyCode的文件中查找,在整个解决方案中。