Arash
Arash

Reputation: 3051

define get or set in c#

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

static int abcd
{  
    get           
    {  
       return  _abcd; 
    }  
}  

thanx

this is the complete code,i dont have this problem with any of your codes but just this:

namespace ConsoleApplication2
{
   class Program
   {
      class Car
      {
         private int _speed;  
         public int Speed;
         {
              get
              {
                return _speed
              }
          }
       }
   }
}

Upvotes: 1

Views: 1004

Answers (3)

Mark Byers
Mark Byers

Reputation: 837896

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

Upvotes: 7

Oded
Oded

Reputation: 498904

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

Upvotes: 8

Henk Holterman
Henk Holterman

Reputation: 273169

This should work:

class Foo
{
    static int _abcd;

    static int Abcd
    {
       get { return _abcd; }
       set { _abcd = value; }    
    }
}

Upvotes: 1

Related Questions