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>
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。编译器错误消息: 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>
跟属性区别开来,你试下看看呢
跟属性区别开来,你试下看看呢
private bool _IsRunning = false;
public string ISRunning
{
get
{
if(_IsRunning)
{
return "The engine is running.";
}
else
{
return "The engine is not running.";
}
}
private string color;
private int gear;
private Engine engine;没见你说的private bool IsRunning;呀
{
get
{
if(IsRunning)
{
return "The engine is running.";
}
else
{
return "The engine is not running.";
}
}
}
放到类Engine里面去,不然怎么找的到
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类应该是在这里结束才对
呵呵,还真没放进去阿,不过又产生一个问题: 未将对象引用设置到对象的实例。
说明: 执行当前 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);
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)了,当然要报异常了
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);