san*_*p22 10 c# multiple-variable-return
我想给一个方法一个参数,我希望我的方法通过查看参数返回数据.数据可以是boolean,string,int等类型.如何从方法返回变量类型?我不想返回一个对象类型,然后将其转换为另一种类型.例如:
BlaBla VariableReturnExampleMethod(int a)
{
if (a == 1)
return "Demo";
else if (a == 2)
return 2;
else if (a == 3)
return True;
else
return null;
}
Run Code Online (Sandbox Code Playgroud)
我想要的原因是我有一个方法从数据库中读取一行的选定列.列的类型不相同,但我必须返回每列的信息.
Jon*_*eet 17
如何从方法返回变量类型?我不想返回一个对象类型,然后将其转换为另一种类型.
那基本上你要做的就是这个.或者,如果您使用的是C#4,则可以创建返回类型dynamic,这将允许转换隐式:
dynamic VariableReturnExampleMethod(int a)
{
// Body as per question
}
...
// Fine...
int x = VariableReturnExampleMethod(2);
// This will throw an exception at execution time
int y = VariableReturnExampleMethod(1);
Run Code Online (Sandbox Code Playgroud)
从根本上说,您可以指定类型以使编译器知道预期的内容.如果仅在执行时知道类型,那该怎么办?dynamic版本工作的原因是它基本上告诉编译器将其正常工作推迟到执行时间 - 因此您将失去正常的安全性,这将使第二个示例在编译时失败.