【发布时间】:2012-09-12 10:44:39
【问题描述】:
你能在 C# 中做这样的事情吗
var GetSomething()
{
var x = new { a = "b", i = 1 };
return x;
}
或者也许我可以做任何其他选择?关于返回类型是的,我知道。我正在寻找更通用的东西:D
【问题讨论】:
-
也许你应该解释一下你为什么要做这样的事情,这样你可能会得到更好的建议。
你能在 C# 中做这样的事情吗
var GetSomething()
{
var x = new { a = "b", i = 1 };
return x;
}
或者也许我可以做任何其他选择?关于返回类型是的,我知道。我正在寻找更通用的东西:D
【问题讨论】:
var 是语法糖——它不是缺少类型。类型在编译时确定。
只能在方法内部使用。
也许您希望改用dynamic。
动态类型允许其发生的操作绕过编译时类型检查。相反,这些操作是在运行时解决的。
dynamic GetSomething()
{
dynamic x = new { a = "b", i = 1 };
return x;
}
【讨论】:
var a = GetSomething();
static Object GetSomething()
{
var x = new { a = "b", i = 1 };
return (Object)x;
}
匿名类型可以从方法返回,但必须强制转换为对象,这违背了强类型的目的。
【讨论】:
我设法返回匿名类型。我将它作为对象返回,然后将其转换。感谢任何回答的人:D
object GetSomething()
{
var x = new { a = "b", i = 1 };
return x;
}
【讨论】: