Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 抽象方法的返回类型_C#_Abstract Class_Abstract Methods - Fatal编程技术网

C# 抽象方法的返回类型

C# 抽象方法的返回类型,c#,abstract-class,abstract-methods,C#,Abstract Class,Abstract Methods,实际上,我并没有太多地处理抽象方法,但我正在研究抽象类中的抽象方法 protected abstract bool Validate() { } 当我创建上面的类时,我得到一个错误,告诉我需要按照普通方法指定返回类型。这是正确的还是我做错了什么?如果您声明了抽象方法,那么您不应该给出body protected abstract bool Validate(); 如果不是抽象方法声明,而是给出了抽象方法的实现,那么应该使用method方法的return语句返回bool

实际上,我并没有太多地处理抽象方法,但我正在研究抽象类中的抽象方法

    protected abstract bool Validate()
    {
    }

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

如果您声明了抽象方法,那么您不应该给出body

protected abstract bool Validate();
如果不是抽象方法声明,而是给出了抽象方法的实现,那么应该使用method方法的return语句返回bool,以满足declaration中的返回类型

protected abstract bool Validate()
{
     //The method code 
     return false;
}
抽象方法声明引入了一个新的虚拟方法,但是 不提供该方法的实现。相反 非抽象派生类需要提供自己的 通过重写该方法实现。因为这是一种抽象的方法 不提供实际实现,即抽象的方法体 方法仅由分号组成


如果您声明了抽象方法,那么不应该给出body

protected abstract bool Validate();
如果不是抽象方法声明,而是给出了抽象方法的实现,那么应该使用method方法的return语句返回bool,以满足declaration中的返回类型

protected abstract bool Validate()
{
     //The method code 
     return false;
}
抽象方法声明引入了一个新的虚拟方法,但是 不提供该方法的实现。相反 非抽象派生类需要提供自己的 通过重写该方法实现。因为这是一种抽象的方法 不提供实际实现,即抽象的方法体 方法仅由分号组成


抽象方法不应该有主体。它由派生类来实现该方法

protected abstract bool Validate();

抽象方法不应该有主体。它由派生类来实现该方法

protected abstract bool Validate();

请查看文档:

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


请查看文档:

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


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

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

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

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

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

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

因为其他提到的抽象方法没有实体。 它们没有的原因是类不能有实例。这意味着你永远不会有抽象类的对象。
您必须扩展抽象类并在具体类中实现body,因为其他提到的抽象方法没有body。 它们没有的原因是类不能有实例。这意味着你永远不会有抽象类的对象。
您必须扩展抽象类并在具体类中实现body。我很惊讶一对花括号能让你偏离正轨,明白了吗。我很惊讶一对花括号能让你偏离正轨。