C#中一个很简单的变量赋值问题

iloli iloli 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
Program是一个类名
Program.temperature是这个类中声明的静态变量


temperature是另一个类 AAA 中的变量

我要在这个AAA实例出的对象的方法里实现累加

这个写法就不对,加不了。
Program.temperature = temperature + 1

这个就对
Program.temperature = ++temperature

————————————————

或者说
用这一句:
Program.temperature = temperature + 1
就不对


而用这二句:
temperature = temperature + 1
Program.temperature = temperature
就正确。


————————————————————--
这是为什么呀,原因出在哪里?



这里我烤过来代码源文件的一部分:



namespace mydelegate
{
class Program
{
public static int temperature = 38;
public static int custemp = 25;
public static bool isStart = false;

static void Main(string[] args)
{
AirConditioner airconditioner = new AirConditioner();
Displayer displayer = new Displayer();
Alarmer alarmer = new Alarmer();

Uptemper uptemper = new Uptemper();

Timer mytimer = new Timer(2000);


uptemper.OverLoadTemperatureEvent += airconditioner.Start;
uptemper.OverLoadTemperatureEvent += displayer.Display;
uptemper.OverLoadTemperatureEvent += alarmer.Alarm;

mytimer.Elapsed += new ElapsedEventHandler(uptemper.Uptemp);

mytimer.Start();


Console.ReadKey();
}


}


//定义模拟升温类
public class Uptemper
{
public int temperature;
public int custemp;

......
......若干代码
......

public void Uptemp(object sender,ElapsedEventArgs e)
{
custemp = Program.custemp;
temperature = Program.temperature;

//用这二句做累加,成功!
//temperature = temperature + 1;
//Program.temperature = temperature ;

      //用这句做累加,也成功
//Program.temperature = ++ temperature

//用这句做累加,就失败,Program.temperature里的值一直都加不上去。
  Program.temperature = temperature + 1; //自然升温

//Console.WriteLine("随机数为{0} 加后结果{1}", x, Program.temperature);
OverLoadTemperatureEvent(temperature, custemp);


......


}


...全文
评论 5
收藏 已收藏
分享
返回顶部
iloli
C# 111,128 成员 642,536 内容