无法从 'method group' 转换为 'string'
Cannot convert from 'method group' to 'string'
大家好,我的 userID.GetUserByID
和 getIP.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);
大家好,我的 userID.GetUserByID
和 getIP.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);