2012-06-11 64 views
0

嘿,我是新来的C#和我正在跟随一个教程,但我在我的代码中得到一个错误...它说:“标识符预期”在这里(get; set;),也给出了错误“令牌无效';'在类,结构或接口成员声明“中。标识符预计c#

任何帮助都将不胜感激。

谢谢!

public class Invoice 
{ 
    public int ID (get; set;) 
    public string Description (get; set;) 
    public decimal Amount (get; set;) 
} 


[TestClass] 
public class ReferenceTypesAndValueTypes 
{ 
    [TestMethod] 
    public void IdentityTest() 
    { 
     Invoice firstInvoice = new Invoice(); 
     firstInvoice.ID = 1; 
     firstInvoice.Description = "Test"; 
     firstInvoice.Amount = 0.0M; 

     Invoice secondInvoice = new Invoice(); 
     secondInvoice.ID = 1; 
     secondInvoice.Description = "Test"; 
     secondInvoice.Amount = 0.0M; 

     Assert.IsFalse(object.ReferenceEquals(secondInvoice, firstInvoice)); 
     Assert.IsTrue(firstInvoice.ID == 1); 

     secondInvoice.ID = 2; 

     Assert.IsTrue(secondInvoice.ID == 2); 
     Assert.IsTrue(firstInvoice.ID == 1); 

     secondInvoice = firstInvoice; 

     Assert.IsTrue(object.ReferenceEquals(secondInvoice,firstInvoice)); 

     secondInvoice.ID = 5; 
     Assert.IsTrue(firstInvoice.ID == 5); 

    } 
} 

回答

6

您需要更换用大括号{}

例如括号()

public class Invoice 
{ 
    public int ID { get; set; } 
    public string Description { get; set; } 
    public decimal Amount { get; set; } 
} 
+0

大声笑我刚刚评论与“哪里”:P很高兴你编辑 – rlemon

+0

没问题的家伙。 – dtsg

1

在汽车性能,语法糖让你离开关闭的getter/setter的实现 - 所以你应该有这样的:

SomeProperty { get; set; } 

这将相当于:

SomeProperty 
{ 
    get { return _somePropertyBackingField; } 
    set { _somePropertyBackingField = value; } 
} 

这些都不需要括号,因为这是结构表示法 - 括号通常保留用于铸造和方法调用

SomeProperty (get; set;) 

没有多大的意义来解释

你知道有在Visual Studio代码片段,可以为你做这个:

只需键入“托”,按下tab键两次。试试吧:) - 没有更多的错别字