在JavaScript中,我可以调用这样的函数:
x = myFunction({"meetingID": 2, "meetingRoom": "A103"});
myFunction()然后接收一个可以用JSON解析的对象,或者只是通过引用对象的属性来接收:
function myFunction( args ) {
var x = args.meetingID;
}
C#中是否有类似的构造?是否存在“内联对象”或“即时对象”等内容?
答案 0 :(得分:2)
您可以将anonymous type与dynamic
关键字结合使用。
void MyFunction(dynamic args)
{
var x = args.MeetingId;
}
MyFunction(new { MeetingId = 2, MeetingRoom = "A103" });
注意 - 这与javascript不同。如果传递给MyFunction
的对象不包含属性MeetingId
,那么您将在运行时获得异常。
答案 1 :(得分:0)
你可以使用字典
public static void Main()
{
myFunction(new Dictionary<string, object>()
{
{ "meetingID", 2},
{ "meetingRoom", "A103"}
}
);
}
public static void myFunction(Dictionary<string,object> args)
{
var x = args["meetingID"];
}
答案 2 :(得分:0)
只是一个小建议......如果可能的话,使用可选参数会更安全:
string myFunction( int meetingID = 0, string meetingRoom = null ) {
var x = meetingID;
}
然后你就可以使用它:
var x = myFunction( meetingID: 2, meetingRoom: "A103" );
var y = myFunction( meetingRoom:"A103" ); // order doesn't matter if you specify the parameter name
var z = myFunction( 3, "B109" );
var _ = myFunction();