你能从方法中返回隐式类型吗?

时间:2012-09-12 10:44:39

标签: c#-4.0 types implicit

你能在C#中做这样的事吗

var GetSomething()
{
    var x = new { a = "b", i = 1 };
    return x;
}

或者我可以做任何替代方案吗?关于返回的类型是,我知道这一点。我正在寻找更通用的东西:D

3 个答案:

答案 0 :(得分:3)

var是语法糖 - 它不是缺乏类型。类型在编译时确定。

它只能在方法中使用。

也许您希望改用dynamic

  

动态类型使其发生的操作可以绕过编译时类型检查。相反,这些操作在运行时解决。

另见Using Type dynamic

dynamic GetSomething()
{
    dynamic x = new { a = "b", i = 1 };
    return x;
}

答案 1 :(得分:0)

var a = GetSomething();

static   Object  GetSomething()
{
    var x = new { a = "b", i = 1 };
    return (Object)x;
}

匿名类型可以从方法返回,但必须强制转换为对象,这违背了强类型的目的。

答案 2 :(得分:0)

我设法返回匿名类型。我把它作为一个对象返回然后再投射它。感谢任何回答:D

的人
object GetSomething()
{
    var x = new { a = "b", i = 1 };
    return x;
}