返回抽象方法的类型

时间:2013-12-05 10:41:02

标签: c# abstract-class abstract-methods

并没有真正处理抽象方法,而是在抽象类中查看抽象方法。

    protected abstract bool Validate()
    {
    }

当我创建上面的类时,我收到一个错误,告诉我需要按照常规方法指定返回类型。这是正确的还是我做错了什么?

5 个答案:

答案 0 :(得分:5)

如果你宣布抽象方法,那么你不应该给身体

protected abstract bool Validate();

如果它不是抽象方法声明但你给出了抽象方法的实现,那么你应该使用方法方法中的bool语句返回return以满足声明中的返回类型。

protected abstract bool Validate()
{
     //The method code 
     return false;
}
  

抽象方法声明引入了一个新的虚方法   没有提供该方法的实现。代替,   非抽象派生类需要提供自己的派生类   通过覆盖该方法实现。因为抽象的方法   没有提供实际的实现,抽象的方法体   方法只包含一个分号MSDN

答案 1 :(得分:1)

抽象方法不应该有身体。它被赋予派生类以实现该方法。

protected abstract bool Validate();

答案 2 :(得分:0)

看一下文档:

  

在方法或属性声明中使用abstract修饰符来指示方法或属性不包含实现。   抽象方法具有以下特征:   抽象方法隐含地是虚方法。   抽象方法声明仅允许在抽象类中使用。   因为抽象方法声明没有提供实际的实现,所以没有方法体;方法声明只以分号结尾,签名后面没有花括号({})。

http://msdn.microsoft.com/en-us/library/sf985hc5.aspx

答案 3 :(得分:0)

在C#中,抽象方法没有实现,因此您的代码应如下所示:

//no { and } in there
protected abstract bool Validate();

您无法创建抽象类的实例,您应该从抽象类创建另一个派生的类,并在该新类中实现此方法。

答案 4 :(得分:0)

正如其他人提到的抽象方法没有实体。 他们不这样做的原因是类不能有实例。这意味着你永远不会有抽象类的对象。 您必须在具体类

中扩展抽象类和实现主体