2013-08-28 66 views
-5

我得到一个抽象类,它有一个基于2个其他派生类的抽象方法。我得到一个错误,说明预期的类,委托,枚举,接口或结构与布尔下的红线。我知道,应该有更多的代码在{}括号只是我需要它来问,如果车仍然运行,并且是IsDead()是怎么一回事C#中的抽象类问题

namespace Car Racer 
{ 
    public abstract class Racer 
    { 
     private string racerName; 
     private int racerSpeed; 
     private Engine engine; 

     public Racer() 
     { 

     } 

     public Racer(string _name, int _speed, Engine _engine) 
     { 
      racerName = name; 
      racerSpeed = speed; 
      Engine = engine; 
     } 

     public string Engine() 
     {} 
      private int cylinders = 0; 
      private int engineHorsePower = 0; 
     } 

     public abstract bool IsDead(); 

    } 
} 

还有,上面写着类型或命名空间定义错误,或文件结束预计
与最后一个花括号下的红线}

+5

请不要再拍后问同样的问题,尤其是另一篇文章与比第一少的信息一个... http://stackoverflow.com/questions/18477128/error-on-overriding-a-bool-abstract-method – Claies

+0

所有你需要知道的是在这里http://msdn.microsoft.com/en-us /library/aa664435(v=vs.71).aspx – VsMaX

+0

'public string Engine()'也是不正确的。你的代码有很多错误。我建议阅读一些书并学习一些C#的基础知识。我想你真的想要'公共类引擎',并且在引擎行之后有一个额外的'}'。 –

回答

1

如果声明abstract函数,它不能有一个主体。

public abstract bool IsDead(); 

如果你想在函数内部代码,必须声明函数virtual而不是abstract

public virtual bool IsDead() 
{ 
    Console.WriteLine("Does it still run Yes or No") 
    Console.ReadLine(); 
} 
+0

我仍然有同样的错误后,我删除公共抽象布尔IsDead( ); – Jess

+0

那么你需要[编辑你原来的问题](http://stackoverflow.com/posts/18477591/edit),并包括整个班级,因为没有其他代码,我无法帮助你。 –