我正在使用发布到网址的API。其中一个变量是传递被称为'事件'。由于event是C#中的关键字,因此我的代码会被挂起。
public ActionResult Index(string event,string email, string category, string reason, string response, string type, string status)
{
return View();
}
这是什么解决方法?
答案 0 :(得分:4)
关键字通常不能用于参数名称。但是,您可以将定义更改为:
public ActionResult Index(string @event, string email, ...) {
答案 1 :(得分:2)
来自§2.4.2C#4规范的标识符:
前缀“@”允许使用关键字作为标识符,这在与其他编程语言交互时很有用。字符@实际上不是标识符的一部分,因此标识符可能在其他语言中看作普通标识符,没有前缀。带有@前缀的标识符称为 逐字标识符 。允许使用@前缀作为非关键字的标识符,但强烈建议不要使用样式。
这不仅适用于其他语言,也适用于使用C#中的Reflection,这是(我假设)MVC的作用。所以你的方法应该是:
public ActionResult Index(string @event, string email, string category, string reason,
string response, string type, string status)
{
return View();
}