C#遇到的坑

1、string.Replace方法返回替换后的字符串,所以使用的时候要用:

string str = "";
str = str.Replace("old", "new");

否则得不到期待的结果。

2、看下面的代码:

PlotWnd.Instance.InitPlotTalkData(int.Parse(NewBattleSelectWnd.battleID), 3, 10);
PlotWnd.Instance.UpdateTalkInformation();
<pre name="code" class="csharp">PlotWnd.Instance.SetProcessOtherThingWhenClosedHander(EnterBattleAfterPlotTalk);
GameData.mPlotTalkNodeList.Add(3);
LevelHelper.LevelPause(true);
return;

 PlotWnd是一个单例,但是在 
<pre name="code" class="csharp">PlotWnd.Instance.UpdateTalkInformation();
 函数里,有销毁该单例的逻辑代码,然后如果正好满足销毁条件,后面就悲剧了,正确的写法应该是: 

PlotWnd.Instance.InitPlotTalkData(int.Parse(NewBattleSelectWnd.battleID), 3, 10);
PlotWnd.Instance.UpdateTalkInformation();
if(PlotWnd.Exist)
{
     PlotWnd.Instance.SetProcessOtherThingWhenClosedHander(EnterBattleAfterPlotTalk);
     GameData.mPlotTalkNodeList.Add(3);
     LevelHelper.LevelPause(true);
     return;
}
当然,尽量不要在UpdateTalkInformation()函数里处理销毁逻辑,或者将有销毁逻辑的代码放到最后一个调用,但是有谁能保证呢?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值