0

ちょっと私は C# に不慣れで、チュートリアルに従っていますが、コードでエラーが発生しています... get here ( get; set; ) で「識別子が必要です」と表示され、「無効なトークン」というエラーも表示されます。クラス、構造体、またはインターフェイスのメンバー宣言で」を設定します。

どんな助けでも大歓迎です。

ありがとう!!

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);

    }
}
4

2 に答える 2

6

()ブラケットをブレースに置き換える必要があります{}

例えば

public class Invoice
{
    public int ID { get; set; }
    public string Description { get; set; }
    public decimal Amount { get; set; }
}
于 2012-06-11T12:10:22.147 に答える
1

自動プロパティでは、シンタックス シュガーにより、ゲッター/セッターの実装を省略できます。したがって、次のようにする必要があります。

SomeProperty { get; set; } 

それは行くのと同じです:

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

これは構造表記であるため、これらのどれも括弧を必要としません - 括弧は通常、キャストとメソッド呼び出しのために予約されています

 SomeProperty ( get; set; )

通訳者にはあまり意味がない

Visual Studio には、これを行うことができるコード スニペットがあることを知っています。

「prop」と入力してタブを 2 回押すだけです。試してみてください:) - もうタイプミスはありません

于 2012-06-11T12:16:23.760 に答える