2015-10-21 45 views
3

最近我試圖創建一個新的地區的Visual Studio 2012與ASP.Net MVC稱爲Fixed,它會重命名爲_Fixed爲什麼ASP.Net MVC重命名我的「固定」區,以「_fixed」

我可以回去重新命名爲Fixed,它會生成沒有錯誤 - 但默認情況下,它會將其重命名爲_Fixed

爲什麼會發生這種情況?我嘗試了一下,但找不到答案。

enter image description here

enter image description here

更新01:後斯蒂芬的評論,我想在Visual Studio 2015年運行此和VS2015沒有做重命名。它讓區域爲Fixed。因此,我認爲這是特定於Visual Studio 2012

此外,這與Resharper沒有任何關係,因爲我禁用了R#的相同行爲。

+0

我不能複製這個 - 區域名稱是'Fixed'而不是'_Fixed'。也許與ReSharper有關? –

+0

@StephenMuecke:你在使用VS2015嗎?我只是在禁用R#的VS2012中測試它,它仍然將它編輯爲「_Fixed」。但是,它在VS2015中完美運行 - 所以我猜測這與VS2012具體有關。我會相應地更新我的問題。感謝您檢查了這一點。 – saurabhj

+0

我用VS2013和VS2014進行了測試,它產生了'固定'(不再有VS2012,所以你可以是正確的) –

回答

3

fixedkeyword是.net,您不能使用keywords作爲類名稱。

固定語句阻止垃圾收集器重新定位可移動變量。固定語句只允許在不安全的環境中使用。固定也可以用來創建固定大小的緩衝區。

fixed語句設置一個指向託管變量的指針,並在語句執行過程中「引用」該變量。如果沒有固定的話,指向可移動管理變量的指針就沒什麼用處,因爲垃圾回收可能會無法預測地重定位變量。 C#編譯器只允許您在固定語句中指定託管變量的指針。

裁判:https://msdn.microsoft.com/en-us/library/f58wzh21.aspx

更新 最好不要使用任何C# keywords爲類,成員,屬性名。

+0

OP是使用大寫的F'Fixed',而不是'fixed' –

+0

所以有些調查後的有趣的一點是在VS2012 (具體地說),它在任何保留的關鍵字(不考慮大小寫)之前添加'_'。因此,無論我是否嘗試創建一個名爲「Fixed」或「fixed」或「Const」或「const」的區域,VS2012都會添加下劃線。不過,我可以在VS2015中創建一個'Fixed'區域,但是IDE拒絕創建一個'fixed'區域,拋出一個錯誤,即它是一個保留關鍵字。 – saurabhj

+1

事實證明,VS2012不允許您爲保留關鍵字創建控制器或區域或類(不考慮大小寫) - 因爲IIS不區分大小寫。因此,我將繼續並將此標記爲答案。 – saurabhj

相關問題