【问题标题】:"Get" keyword in a Class method?类方法中的“获取”关键字?
【发布时间】:2015-07-16 09:50:38
【问题描述】:

两种方法定义有什么区别,一种有get,一种没有?我知道属性可以有 getset 关键字,但是像下面这样的普通方法呢?

public bool IsEmpty 
{
    get { return _end == _start; }
}

public bool IsEmpty () 
{
    return _end == _start;
}

【问题讨论】:

  • 第一个编译?你已经省略了括号。
  • 如果您添加了括号IsEmpty(){},第二个将是方法而不是属性
  • 方法必须有参数,即使是空的!
  • 功能你的代码做同样的事情。然而,属性和方法被设想用于不同的目的。看看这里。 stackoverflow.com/questions/164527/…
  • 对不起大家,我误解他们是方法。事实上,它们是财产。问题解决了!

标签: c#


【解决方案1】:

方法定义也不是。第一个是只读属性定义:

public bool IsEmpty
{
    get { return _end == _start; }
}

第二个看起来一样,但错过了get关键字:

public bool IsEmpty
{
    return _end == _start;
}

所以它不会编译。通过添加括号使其成为method 定义:

public bool IsEmpty()

【讨论】:

  • 感谢@CodeCaster,我认为这是我自己的愚蠢,我认为它们是“方法”......问题已解决!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2012-10-30
  • 2013-09-27
  • 2018-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多