define get or set in c#

前端 未结 3 538
迷失自我
迷失自我 2021-01-25 12:57

friends i have problem with using get or set in class in c# when i use get or set in gives error(invalid token { in class) pls, see below code,i have this problem in it

相关标签:
3条回答
  • 2021-01-25 13:05

    There are two errors in your code.

    • You have a semicolon where there shouldn't be one (spotted by Oded).
    • You are missing a semicolon where there should be one.

    Try this instead:

    namespace ConsoleApplication2
    {
        class Program
        {
            class Car
            {
                private int _speed;  
                public int Speed     // <-- no semicolon here.
                {
                    get
                    {
                        return _speed;  // <-- here
                    }
                }
            }
        }
    }
    

    I noticed that the code you originally posted was formatted badly. I would suggest that you format your document automatically in Visual Studio to make the braces line up. This should make the error more obvious. When the formatting of the code looks wrong you know that there is an error nearby. You can find this option in the menu: Edit -> Advanced -> Format Document or use the keyboard shortcut (Ctrl-E D for me, but might be different for you, depending on your settings).

    I would also suggest that you consider using auto-implemented properties instead of writing the getter out in full:

    namespace ConsoleApplication2
    {
        class Program
        {
            class Car
            {
                public int Speed { get; private set; }
            }
        }
    }
    
    0 讨论(0)
  • 2021-01-25 13:13

    The snippet you have posted is fine as it is, also in regards to the error, as it has the correct number of { to } and in the right order.

    Look at where you have placed it (possibly outside of a class), or look for extra } in the file.

    Update: (following edit in question)

    Your issue is here:

    public int Speed; // <-- ; should not be here
    

    And:

    return _speed // <-- missing the ;
    

    The property should be implemented like this:

    public int Speed
    {
       get
       {
          return _speed;
       }
    }
    
    0 讨论(0)
  • 2021-01-25 13:28

    This should work:

    class Foo
    {
        static int _abcd;
    
        static int Abcd
        {
           get { return _abcd; }
           set { _abcd = value; }    
        }
    }
    
    0 讨论(0)
提交回复
热议问题