在c#中的函数中返回两个字符串

Nit*_*raw 6 c# return

protected string Active_Frozen(string text, string color)
{
    connection();
    string query = "SELECT CustomerInfo FROM ActiveSubscription WHERE UserName=@UserName";

    SqlCommand cmd = new SqlCommand(query, conn);

    if(query=="true")
    {
       text = "Active";
       color = "Green";
    }
    else
    {
       text = "Frozen";
       color= "Red";
    }

    return (text, color);
}
Run Code Online (Sandbox Code Playgroud)

我想要返回两个字符串:文本和颜色,不确定问题是什么.

错误@ return语句:

(参数)?文字/色彩

无法将lambda表达式转换为类型'string',因为它不是委托类型

das*_*ght 8

当你返回件事时,你需要声明你的函数返回件事.但是,您的函数被声明为返回一个字符串.

解决它的一种方法是使用Tuple<T1,T2>:

Tuple<string,string> Active_Frozen(string text, string color) {
    ...
    return Tuple.Create(text, color);
}
Run Code Online (Sandbox Code Playgroud)

请注意,返回颜色的名称而不是颜色对象本身可能并不理想,具体取决于设计中返回值的使用.如果要返回颜色的对象表示而不是字符串,请更改第二个类型参数Tuple,或创建自己的类来表示文本及其颜色.