C#中警告:“对同一变量进行赋值;是否希望对其他变量赋值?”,这个怎么消除?

我进行了一些判断,在情况1下,变量a=a(即a值不变);情况2下,变量a=b(即a值变了);其中,正是这个a=a;出现警告。我又不能再判断后,在情况1,不对a做任何处理,... 我进行了一些判断 ,在情况1下,变量a=a(即a值不变);情况2下,变量a=b(即a值变了);其中,
正是这个a=a;出现警告。我又不能再判断后,在情况1,不对a做任何处理,不写任何语句把?下怎么才能消除呢?
展开
 我来答
大道至简VIP
2018-08-07 · TA获得超过621个赞
知道小有建树答主
回答量:176
采纳率:100%
帮助的人:34.2万
展开全部

如果直接使用a = a;其实等于是a的值没有变化,这是一个死循环。虽然有警告,但编译通过。

但是却不是你想要的结果。

如果a的值前后不一样,变化了,在这种情况下,请使用this关键字,就不会有报错。a的值会被更新为最新的值。

this.a = a;
this.b = b;

这样就完美解决。

濮方雅BX
2013-12-18 · TA获得超过4042个赞
知道大有可为答主
回答量:2482
采纳率:60%
帮助的人:2466万
展开全部
你可能需要一个中间变量temp,把之前的变量a的值保存下来,temp=a;
然后到你需要判断的代码段,如下:
if(a == temp)
{
//情况1,
}
else
{
//情况2 a=b;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
末日高督
2013-12-19 · TA获得超过303个赞
知道小有建树答主
回答量:469
采纳率:0%
帮助的人:258万
展开全部
直接写
if(条件2)
a= b;
其他没必要写了.因为a在条件1下保持不变.
真正改变a的是条件2.因此只需写条件2的处理即可
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fej121121
2013-12-19 · TA获得超过651个赞
知道小有建树答主
回答量:655
采纳率:66%
帮助的人:535万
展开全部
a=a;本身就没用,为什么 不能 “不对a做任何处理,不写任何语句“呢??”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式