IsRunning之前就被声明为 private bool IsRunning;了,为什么还是说不存在??求各位大哥大姐帮帮小弟!~编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。编译器错误消息: CS0103: 当前上下文中不存在名称“IsRunning”源错误:行 114:       get
行 115:       {
行 116:         if(IsRunning)
行 117:         {
行 118:           return "The engine is running.";
------------------------------------------------------------------------------------------------------------
<script language="C#" runat="server">
   public class Car
   {
     private string color;
     private int gear;
     private Engine engine;     public Engine objEngine
   {
      get
      {
        return engine;
      }
      set
      {
        engine=value;
       }
    }
    public string Color
    {
      get
      {
        return color;
      }
      set
      {
        color=value;
      }
    }
    public int Gear
    {
      get
      {
        return gear;
      }
      set
      {
        gear=value;
      }
    }
    public void ChangeGear(int Direction)
    {
       if(Direction>0)
       {
         gear++;
       }
       if(Direction<0)
       {
         gear--;
       }
       if(gear>5)
       {
         gear=5;
        }
       if(gear<-1)
       {
         gear=-1;
       }
    }
         
}
  public class Engine
  {
      
      private string serialNo;
      private string rpm;
      private string name;
      private bool IsRunning;    public Engine(string Name, string Rpm, string SerialNo)
    {
      name=Name;
      rpm=Rpm;
      serialNo=SerialNo;
    }
      public void SwitchOn(Engine EngineName)
      {
      if(EngineName.name=="Ferrari" && EngineName.rpm=="050" && EngineName.serialNo=="V10")
          IsRunning=true;
       else
       IsRunning=false;
   
      }
      public void SwitchOff()
      {
       IsRunning=false;
      
      }
      public string Name
      {
        get
        {
          return name;
        }
      }
      public string Rpm
      {
        get
        {
          return rpm;
        }
      }
      public string SerialNo
      {
        get
        {
          return serialNo;
        }
      }
}        public string ISRunning
     {
       get
       {
         if(IsRunning)
         {
           return "The engine is running.";
          }
         else
         {
           return "The engine is not running.";
          }
       }
   }
public void Page_Load()
{  Engine AlexEngine=new Engine("Fdd","060","V3");
  Engine RobEngine=new Engine("Ferrari","050","V1");
  Engine MyEngine=new Engine("Xeer","070","V6");
  
  Car MyCar=new Car();
  Response.Write("<b>New object 'MyCar' created.</b>");
  
     Response.Write("<hr>Attempting to start MyCar with AlexEngine:");
     MyCar.objEngine.SwitchOn(AlexEngine);//用IgnitionName启动ignition属性
     Response.Write(MyCar.objEngine.Name);
     
     Response.Write("<hr>Attempting to start MyCar with RobEngine:");
     MyCar.objEngine.SwitchOn(RobEngine);//用IgnitionName启动ignition属性
     Response.Write(MyCar.objEngine.Name);
     
     Response.Write("<hr>Attempting to start MyCar with MyEngine:");
     MyCar.objEngine.SwitchOn(MyEngine);//用IgnitionName启动ignition属性
     Response.Write(MyCar.objEngine.Name);
     
     MyCar.objEngine.SwitchOff();//关掉引擎  
}
</script> 

解决方案 »

  1.   

    IsRunning  定义变量的时候首字母最好小写
    跟属性区别开来,你试下看看呢
      

  2.   

    IsRunning  定义变量的时候首字母最好小写
    跟属性区别开来,你试下看看呢
      

  3.   

    你定义的时候需要实例化。比如private bool IsRunning = false;
      

  4.   

    你得这样写:
    private bool _IsRunning = false;
    public string ISRunning
         {
           get
           {
             if(_IsRunning)
             {
               return "The engine is running.";
              }
             else
             {
               return "The engine is not running.";
              }
           }
      

  5.   

    class 下看到
          private string color;
         private int gear;
         private Engine engine;没见你说的private bool IsRunning;呀
      

  6.   

    public string ISRunning
         {
           get
           {
             if(IsRunning)
             {
               return "The engine is running.";
              }
             else
             {
               return "The engine is not running.";
              }
           }
       }
    放到类Engine里面去,不然怎么找的到
      

  7.   


    public class Engine
      {
          
          private string serialNo;
          private string rpm;
          private string name;
          private bool IsRunning;    public Engine(string Name, string Rpm, string SerialNo)
        {
          name=Name;
          rpm=Rpm;
          serialNo=SerialNo;
        }
          public void SwitchOn(Engine EngineName)
          {
          if(EngineName.name=="Ferrari" && EngineName.rpm=="050" && EngineName.serialNo=="V10")
              IsRunning=true;
           else
           IsRunning=false;
       
          }
          public void SwitchOff()
          {
           IsRunning=false;
          
          }
          public string Name
          {
            get
            {
              return name;
            }
          }
          public string Rpm
          {
            get
            {
              return rpm;
            }
          }
          public string SerialNo
          {
            get
            {
              return serialNo;
            }
          }
    //}这个大括号的位置不对        public string ISRunning
         {
           get
           {
             if(IsRunning)
             {
               return "The engine is running.";
              }
             else
             {
               return "The engine is not running.";
              }
           }
       }
    }//Engine类应该是在这里结束才对
     
      

  8.   


    呵呵,还真没放进去阿,不过又产生一个问题: 未将对象引用设置到对象的实例。
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:行 136:  
    行 137:     Response.Write("<hr>Attempting to start MyCar with AlexEngine:");
    行 138:     MyCar.objEngine.SwitchOn(AlexEngine);
    行 139:     Response.Write(MyCar.objEngine.Name);
      

  9.   

    Car MyCar=new Car();
      Response.Write("<b>New object 'MyCar' created.</b>");
      
         Response.Write("<hr>Attempting to start MyCar with AlexEngine:");
         MyCar.objEngine.SwitchOn(AlexEngine);//用IgnitionName启动ignition属性
         Response.Write(MyCar.objEngine.Name);从代码来看:
    MyCar的objEngine没有赋值,后面就直接MyCar.objEngine.SwitchOn(AlexEngine)了,当然要报异常了
      

  10.   

    怎么赋值阿?这样怎么不行?
      Engine AlexEngine=new Engine("Fdd","060","V3");
      Engine RobEngine=new Engine("Ferrari","050","V1");
      Engine MyEngine=new Engine("Xeer","070","V6");
      
      Car MyCar=new Car();
      Response.Write("<b>New object 'MyCar' created.</b>");
      MyCar.objEngine.Name="Xeer";
      MyCar.objEngine.Rpm="070";
      MyCar.objEngine.SerialNo="V6";
         Response.Write("<hr>Attempting to start MyCar with AlexEngine:");
         
         MyCar.objEngine.SwitchOn(AlexEngine);
         Response.Write(MyCar.objEngine.Name);