First of all i searched on this and i found the following links on Stack Overflow:
But i'm not satisfied with this answer, it's not explained well (i didn't get it well). Basically, i want to know the difference between new object()
and new {}
. How, they are treated at compile time and runtime?
Secondaly, i have the following code which i have used for WebMethods
in my asp.net simple application
[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; }
So, (as you can see in comments in code), How new object(){}
and new {}
differences?
Is this even the right way that i have write the code? Can you suggest a best way for this code?
I know, i can't explain it well and i'm asking alot, but that's the best i have right now.
new {...}
always creates an anonymous object, for instance:
Object sample = new {}; String sampleName = sample.GetType().Name; // <- something like "<>f__AnonymousType0" // not "Object"
while new Object()
creates an instance of Object
class
Object sample = new Object() {}; String sampleName = sample.GetType().Name; // <- "Object"
since all objects (including anonymous ones) are derived from Object
you can always type
Object sample = new {};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With