首先我在Stack Overflow上进行了搜索,找到了以下链接:
但是我对这个答案不满意,解释得不够清楚(我没有理解清楚)。基本上,我想知道 `new object()` 和 `new {}` 之间的区别。它们在编译时和运行时如何处理?
其次,我有下面这段代码,我已经在我的 ASP.NET 简单应用程序中用于 WebMethods
。
[WebMethod]
[ScriptMethod(UseHttpGet = false)]
public static object SaveMenus(MenuManager proParams)
{
object data = new { }; // here im creating an instance of an 'object' and i have typed it `new {}` but not `new object(){}`.
try
{
MenuManager menu = new MenuManager();
menu.Name = proParams.Name;
menu.Icon = proParams.Icon;
bool status = menu.MenuSave(menu);
if (status)
{
// however, here i'm returning an anonymous type
data = new
{
status = true,
message = "Successfully Done!"
};
}
}
catch (Exception ex)
{
data = new { status = false, message = ex.Message.ToString() };
}
return data;
}
那么,(如您在代码注释中所见),new object(){}
和new {}
有何不同?
这是否是我编写代码的正确方式? 您能为此代码提供最佳建议吗?
我知道我无法很好地解释它,而且我要求很多,但这是我现在拥有的最好的。
new{}
创建了一个匿名类型。 - CodesInChaosMSIL
中如何处理?这会由 C# 编译器生成一个新的Anonymouse
类型的分离代码吗? - Idrees Khannew {}
来创建所有对象类型的实例吗? - Subin Jacobvar a = new { };
和var o = new object();
,则有一个区别,前者只能分配给另一个类似的匿名对象,而后者作为对象,可以被分配给任何东西。 - nawfal