在c#中定义get或set

时间:2010-08-14 14:34:08

标签: c# .net properties get

朋友我在c#中使用get或set in class时遇到问题  当我使用get或set in给出错误时(在课堂上无效的令牌) 请参阅下面的代码,我有这个问题

static int abcd
{  
    get           
    {  
       return  _abcd; 
    }  
}  

感谢名单

这是完整的代码,我的任何代码都没有这个问题,只是这个:

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

3 个答案:

答案 0 :(得分:8)

您发布的代码段虽然很好,但也与错误有关,因为它的{}的编号正确且顺序正确。

查看您放置它的位置(可能在课堂外),或在文件中查找额外的}

更新(有问题的编辑后)

您的问题在这里:

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

return _speed // <-- missing the ;

该属性应该像这样实现:

public int Speed
{
   get
   {
      return _speed;
   }
}

答案 1 :(得分:7)

您的代码中存在两个错误。

  • 你有一个分号,其中不应该有分号(由Oded发现)。
  • 你错过了一个应该有分号的分号。

请改为尝试:

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

我注意到您最初发布的代码格式错误。我建议您在Visual Studio中自动格式化文档以使大括号排成一行。这应该使错误更加明显。当代码格式错误时,您知道附近有错误。您可以在菜单中找到此选项:编辑 - &gt;高级 - &gt;格式化文档或使用键盘快捷键(Ctrl-E D对我而言,但根据您的设置可能会有所不同)。

我还建议你考虑使用auto-implemented properties而不是完全写出getter:

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

答案 2 :(得分:1)

这应该有效:

class Foo
{
    static int _abcd;

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