朋友我在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
}
}
}
}
}
答案 0 :(得分:8)
您发布的代码段虽然很好,但也与错误有关,因为它的{
到}
的编号正确且顺序正确。
查看您放置它的位置(可能在课堂外),或在文件中查找额外的}
。
更新(有问题的编辑后)
您的问题在这里:
public int Speed; // <-- ; should not be here
和
return _speed // <-- missing the ;
该属性应该像这样实现:
public int Speed
{
get
{
return _speed;
}
}
答案 1 :(得分:7)
您的代码中存在两个错误。
请改为尝试:
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; }
}
}