C# 从一个方法返回多个值

C# 从一个方法返回多个值,c#,C#,大家好,关于从一个方法返回多个值,我遇到了一个问题。我使用“out”从方法返回其他值,这里是代码段: public DataTable ValidateUser(string username, string password, out int result) { try { //Calls the Data Layer (Base Class) if (objDL != null) { int intRet

大家好,关于从一个方法返回多个值,我遇到了一个问题。我使用“out”从方法返回其他值,这里是代码段:

public DataTable ValidateUser(string username, string password, out int result)
{
    try
    {
        //Calls the Data Layer (Base Class)
        if (objDL != null)
        {
            int intRet = 0;
            sqlDT = objDL.ValidateUser(username, password, out intRet);
        }
    }
    catch (Exception ex)
    {
        ErrorHandler.Handle(ex);
        OnRaiseErrorOccuredEvent(this, new ErrorEventArgs(ex));
    }
    return sqlDT;
}
然后当我编译时出现如下错误:

“在控件离开当前方法之前,必须将out参数'return'分配给”


任何人都可以帮我解决这个问题。

方法的参数
结果
标记为。标记为
out
的参数必须在方法中分配,即

result = 5;

这是强制执行的,因此方法的调用方可以保证在方法完成后始终设置随
out传递的参数。

方法的参数
结果
。标记为
out
的参数必须在方法中分配,即

result = 5;

这是强制执行的,因此方法的调用者可以保证在方法完成后始终设置随
out传递的参数。

您没有在方法中设置
result
变量

我猜您想添加一个额外的行,例如

result = intRet;

您没有在方法中设置
result
变量

我猜您想添加一个额外的行,例如

result = intRet;

这意味着在所有可能的情况下(在if内部和外部,在catch中),都必须指定结果变量

最好的方法是在函数开始时给它一个默认值:

public DataTable ValidateUser(string username, string password, out int result)
{
    result = 0;
    try
    {
        //Calls the Data Layer (Base Class)
    if (objDL != null)
    {
        int intRet = 0;
        sqlDT = objDL.ValidateUser(username, password, out intRet);
        result = intRet;
    }
//....

这意味着在所有可能的情况下(在if内部和外部,在catch中),都必须指定结果变量

最好的方法是在函数开始时给它一个默认值:

public DataTable ValidateUser(string username, string password, out int result)
{
    result = 0;
    try
    {
        //Calls the Data Layer (Base Class)
    if (objDL != null)
    {
        int intRet = 0;
        sqlDT = objDL.ValidateUser(username, password, out intRet);
        result = intRet;
    }
//....

什么是
sqlDT
?它在哪里定义?什么是
sqlDT
?它的定义是什么?谢谢,它很有效。。实际上,我把result=intRet放了一段时间,但现在同样的问题是,我做的工作是将result的值初始化为零,第一个result=0谢谢。。实际上,我把result=intRet放了一段时间,但同样的问题现在我做的工作是将result的值初始化为零,第一个result=0