CS0103: 当前上下文中不存在名称,大家快来帮忙看看

changeking 2009-02-05 10:37:57
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>
...全文
563 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
changeking 2009-02-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xray2005 的回复:]
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)了,当然要报异常了
[/Quote]
怎么赋值阿?这样怎么不行?
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);
xray2005 2009-02-05
  • 打赏
  • 举报
回复
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)了,当然要报异常了
changeking 2009-02-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 scjtswj 的回复:]
public string ISRunning
{
get
{
if(IsRunning)
{
return "The engine is running.";
}
else
{
return "The engine is not running.";
}
}
}
放到类Engine里面去,不然怎么找的到
[/Quote]

呵呵,还真没放进去阿,不过又产生一个问题:

未将对象引用设置到对象的实例。
说明: 执行当前 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);
xray2005 2009-02-05
  • 打赏
  • 举报
回复

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类应该是在这里结束才对


scjtswj 2009-02-05
  • 打赏
  • 举报
回复
public string ISRunning
{
get
{
if(IsRunning)
{
return "The engine is running.";
}
else
{
return "The engine is not running.";
}
}
}
放到类Engine里面去,不然怎么找的到
春天的气息 2009-02-05
  • 打赏
  • 举报
回复
class 下看到
private string color;
private int gear;
private Engine engine;

没见你说的private bool IsRunning;呀
changeking 2009-02-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dqlfjy 的回复:]
你得这样写:
private bool _IsRunning = false;
public string ISRunning
{
get
{
if(_IsRunning)
{
return "The engine is running.";
}
else
{
return "The engine is not running.";
}
}

[/Quote]
还是找不到阿
dqlfjy 2009-02-05
  • 打赏
  • 举报
回复
你得这样写:
private bool _IsRunning = false;
public string ISRunning
{
get
{
if(_IsRunning)
{
return "The engine is running.";
}
else
{
return "The engine is not running.";
}
}
changeking 2009-02-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 steal8275756 的回复:]
你定义的时候需要实例化。比如private bool IsRunning = false;
[/Quote]
还是不行,不过受教了
changeking 2009-02-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dengchenlu 的回复:]
IsRunning  定义变量的时候首字母最好小写
跟属性区别开来,你试下看看呢

[/Quote]
改了,可惜还是不行
steal8275756 2009-02-05
  • 打赏
  • 举报
回复
你定义的时候需要实例化。比如private bool IsRunning = false;
dengchenlu 2009-02-05
  • 打赏
  • 举报
回复
IsRunning 定义变量的时候首字母最好小写
跟属性区别开来,你试下看看呢
dengchenlu 2009-02-05
  • 打赏
  • 举报
回复
IsRunning 定义变量的时候首字母最好小写
跟属性区别开来,你试下看看呢

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧