2017-07-31 75 views
0
上抛出错误

我正在运行VS 2015 v14.0.25431.01更新3.当我尝试编译以下代码时,出现问题模块中第1行的错误“CS1513} expected” 。怎么了?VS 2015编译器在struct

<!-- Build a structure of States. --> 
@using System.Collections; 
@{ 
    struct structState 
    { 
     private string s_abbrev; 
     public string abbrev 
     { 
      get 
      { 
       return s_abbrev; 
      } 
      set 
      { 
       s_abbrev = value; 
      } 
     } 

     private string s_name; 
     public string name 
     { 
      get 
      { 
       return s_name; 
      } 
      set 
      { 
       s_name = name; 
      } 
     } 

     public structState(string a_abbrev, string a_name) 
     { 
      s_abbrev = a_abbrev; 
      s_name = a_name; 
     } 
    } 

    structState[] dumState = new structState[50]; 

} 
+0

定义在剃刀视图中吗? – Andez

+0

像这样的类型不应该是一个结构体,它应该是一个类,因为它是可变的。它也应该几乎可以肯定地在它自己的.cs文件中定义,而不是在标记中内联。 – Servy

+0

是的,Andez是在剃刀视图中定义的。 – Mark

回答

0

请在@functions指令中定义您的结构来解决问题。

@{ 
    structState[] dumState = new structState[50]; 
} 


@functions 
{ 

    struct structState 
    { 
     private string s_abbrev; 
     public string abbrev 
     { 
      get 
      { 
       return s_abbrev; 
      } 
      set 
      { 
       s_abbrev = value; 
      } 
     } 

     private string s_name; 
     public string name 
     { 
      get 
      { 
       return s_name; 
      } 
      set 
      { 
       s_name = name; 
      } 
     } 

     public structState(string a_abbrev, string a_name) 
     { 
      s_abbrev = a_abbrev; 
      s_name = a_name; 
     } 
    } 

} 
+0

工作。现在,当我尝试创建一个结构数组时,它无法识别我定义的数组名(数组名不出现在Intellisense下):structState [] arrayState = new structState [50]; – Mark

+0

我在VS 2017上没有发生智能感知问题。记住,你不能在你定义的视图之外使用这个结构。如果你想共享,你必须在代码中定义它(不在视图中)。 –

+0

没关系。我需要将我的结构设置为public - DOH!现在正在工作。发送帮助! – Mark