C#遇到的坑

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

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

否则得不到期待的结果。

2、看下面的代码:

PlotWnd.Instance.InitPlotTalkData(int.Parse(NewBattleSelectWnd.battleID), 3, 10);
PlotWnd.Instance.UpdateTalkInformation();
PlotWnd.Instance.SetProcessOtherThingWhenClosedHander(EnterBattleAfterPlotTalk);
GameData.mPlotTalkNodeList.Add(3);
LevelHelper.LevelPause(true);
return;
 PlotWnd是一个单例,但是在 
  
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()函数里处理销毁逻辑,或者将有销毁逻辑的代码放到最后一个调用,但是有谁能保证呢?


你可能感兴趣的:(c#)