簡體   English   中英

傳遞一個查詢字符串變量,該變量是c#中的關鍵字

[英]passing a query string variable that is a keyword in c#

我正在使用發布到URL的API。 傳遞的變量之一稱為“事件”。 由於event是C#中的關鍵字,因此我的代碼掛了。

public ActionResult Index(string event,string email, string category, string reason, string response, string type, string status)
        {
            return View();
        }

解決方法是什么?

關鍵字通常不能用於參數名稱。 但是,您可以將定義更改為:

public ActionResult Index(string @event, string email, ...) {

根據C#4規范的第2.4.2節標識符:

前綴“ @”允許將關鍵字用作標識符,這在與其他編程語言進行接口時非常有用。 字符@實際上不是標識符的一部分,因此在其他語言中,標識符可能被視為普通標識符,沒有前綴。 帶@前綴的標識符稱為逐字標識符 允許將@前綴用於不是關鍵字的標識符,但是強烈建議您不要使用樣式。

這不僅適用於其他語言,還適用於使用C#的Reflection,這是MVC所做的(我假設是)。 因此,您的方法應為:

public ActionResult Index(string @event, string email, string category, string reason,
                          string response, string type, string status)
{
    return View();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM