gpt4 book ai didi

c# - 具有多种返回类型的方法

转载 作者:行者123 更新时间:2023-12-02 01:22:24 24 4
gpt4 key购买 nike

我浏览了很多与此类似的问题,但没有一个真正触及我真正想做的事情。我想做的是从外部源读取变量列表,这些变量也将其数据类型包含到字符串数组中:

示例:

ID/Key      Type    Value/Data; 
varName1 bool true;
varName2 string str;
varName3 int 5;

然后,我将这些对象作为包含多个字符串的对象存储到字典中,ID 也充当键。

我现在想要做的是创建一个方法,该方法使用 switch 语句将字符串转换为正确的数据类型,并返回它,而无需在方法调用中指定任何内容。该函数应如下所示:

public ??? Method(string key)
{
if(dictionary.ContainsKey(ID))
{
Var temp = dictionary[ID];

switch (temp.Type)
{
case "bool":
return Convert.ToBoolean(temp.Value);

case "int"
return Convert.ToInt(temp.Value);

case "string"
return temp.Value;
}
}

return "NULL";
}

方法调用应如下所示:

int x = Method(string key);
string word = Method(string key);
bool isTrue = Method(string key);

也许我错过了一些东西,但我还没有找到真正能做到这样的事情。对此的任何和所有想法也是受欢迎的。

最佳答案

在 C# 7 中,您可以选择从方法中返回多个值,如下所示:

public (string SomeString, int SomeInt) DoSomething() { ... }

您可以获得这样的值:

var result = DoSomething();
Console.WriteLine(result.SomeString);
Console.WriteLine(result.SomeInt.ToString());

或者

(var someString, var someInt) = DoSomething();
Console.WriteLine(someString);
Console.WriteLine(someInt.ToString());

这在元组的表面下工作,并且您不仅限于 2 个值。我不知道您可以返回多少个值,但我建议当您需要返回那么多值时,创建一个类。更多信息:https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/

关于c# - 具有多种返回类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34798681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com