Невозможно преобразовать группу методов в строку - PullRequest
0 голосов
/ 03 июля 2018

Привет, ребята, у меня проблемы с обоими моими userID.GetUserByID и getIP.GetIPAddress это говорит мне, что я не могу преобразовать из «группы методов» в «строку»

но если я не добавлю ни одного из них, я не получу сообщение об ошибке, но я добавлю любой из всплывающих сообщений об ошибке. внизу мой код в форме, дал и для моего 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;
        }
    }
}

и вот мой код для получения моего ipaddress

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;
    }
}

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Ошибка говорит о том, что вы передаете ссылку на метод вместо строки. Когда вы набираете userID.getUserByID, это просто ссылка на этот метод. Когда вы набираете userID.getUserByID(), вы фактически вызываете метод, поэтому результатом является строка, возвращаемая этим методом.

Если я понимаю ваш код, вы должны просто добавить скобки при вызове методов в вашем ValideBarCode3() методе, подобном этому

ValidateBarCode3(sBarCode, userID.getUserByID(), getIP.GetIPAddress(),modGlobal.gBoothID = Settings.Default.BoothID);
0 голосов
/ 03 июля 2018

Могу сказать, что у вас был опыт работы с vb.net В vb.net скобки, следующие за вызовом метода, предоставляются редактором и иногда просто предполагаются, как в .ToString. Хорошо в VB, но не в C #.

getIP.GetIPAddress

должно быть

getIP.GetIPAddress()

и

userID.getUserByID

должно быть

userID.getUserByID()
...