for*_*umb 0 c# parameter-passing switch-statement .net-6.0 c#-10.0
我可以以某种方式简化这个 switch 语句,因为这两种情况都只使用另一个函数参数做同样的事情吗?
\nswitch (data.Subscriber.Protocol)\n{\n case "email json":\n builder.Attachments.Add("O\xc4\x8ditanje.json", CraftAttachment(data));\n break;\n case "email text":\n builder.Attachments.Add("O\xc4\x8ditanje.txt", CraftAttachment(data));\n break;\n default:\n break;\n}\nRun Code Online (Sandbox Code Playgroud)\n
像这样的事情怎么样:
\nstring attachmentName = data.Subscriber.Protocol switch\n{\n "email json" => "O\xc4\x8ditanje.json",\n "email text" => "O\xc4\x8ditanje.txt",\n _ => null\n};\n\nif (attachmentName is not null)\n{\n builder.Attachments.Add(attachmentName, CraftAttachment(data));\n}\nRun Code Online (Sandbox Code Playgroud)\n\n