无法从 'method group' 转换为 'string'

Cannot convert from 'method group' to 'string'

大家好,我的 userID.GetUserByIDgetIP.GetIPAddress 都有问题 它告诉我无法从 'method group' 转换为 'string'

但如果我什至不添加其中一个,我不会收到错误,但我添加其中一个会弹出该错误。下面是我的表单代码,dal 和我的 ip

sBarcodeValidation = new ValidateBarCode3Repository().ValidateBarCode3(
          sBarCode, 
          userID.getUserByID,
          getIP.GetIPAddress,
          modGlobal.gBoothID = Settings.Default.BoothID);

这是我的 getUserByID

代码
public class GetUserByID
{
    CACHE CacheConnection = new CACHE();
    public string getUserByID(GetAllUsers getUserByID) 
    {
        try
        {
            CacheConnection.ClearParameters();
            CacheConnection.AddParameter(getUserByID.ID);
            return CacheConnection.ExecuteQuery("AGSP.Users", "GetUserByID", CommandType.StoredProcedure, InterSystems.Data.CacheTypes.ClientTypeId.tString);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}

这是我获取 IP 地址的代码

public class GetIp
{
    //public void getHostName()
    //{
    //    string hostName = Dns.GetHostName(); // Retrive the Name of HOST  
    //    // Get the IP  
    //    string myIP = Dns.GetHostEntry(hostName).AddressList[1].ToString();
    //}
    public static IPAddress GetIPAddress()
    {
        IPAddress ip = Dns.GetHostAddresses(Dns.GetHostName()).Where(address =>
        address.AddressFamily == AddressFamily.InterNetwork).First();
        return ip;
    }
}

我可以说你有一些 vb.net 经验。在 vb.net 中,方法调用后的括号由编辑器提供,有时就像在 .ToString 中一样假设。在 vb 中可以,但在 C# 中不行。

getIP.GetIPAddress

需要

getIP.GetIPAddress()

userID.getUserByID

需要

userID.getUserByID()

错误说明您传递的是方法引用而不是字符串。当您键入 userID.getUserByID 时,它只是对该方法的引用。当您键入 userID.getUserByID() 时,您实际上是在调用该方法,因此结果是该方法返回的字符串。

如果我理解你的代码,你应该在你的 ValideBarCode3() 方法中调用方法时添加方括号,就像这样

ValidateBarCode3(sBarCode, userID.getUserByID(), getIP.GetIPAddress(),modGlobal.gBoothID = Settings.Default.BoothID);