2023年4
有同事说程序崩溃一起分析得结果
unsigned uNum = 2;
std::string str = "abc" + uNum;
std::cout << str;
结果是c 。如果uNum 很大的话,就可能崩溃。
unsigned uNum = 2;
//std::string str = "abc" + uNum;
std::string str = "abc" + std::to_string(uNum);
std::cout << str;
结果才是 abc2
2023年五月
同事的自画界面退出时崩溃
我直接调试Debug发现3处直接崩溃,一沟通才知道他Debug配置没跑起来,确保他跑起来后,问题很快解决。
7月
C#空条件运算符(?.)
遇到空指针也不会崩溃,代替空指针模式。
internal class CTest
{
public string m_str = "abc";
}
internal class Program
{
static void Main(string[] args)
{
CTest test1 = new CTest();
CTest test2 = null;
var ret1 = test1?.m_str;//ret1位"abc"
var ret2 = test2?.m_str;//ret2位null
//var ret3 = test2.m_str;//此行会崩溃
}
}
空合并运算符
string str1 = "abc";
string str2 = null;
var ret1 = str1 ?? "def";//ret1位"abc"
var ret2 = str2 ?? "def";//ret2为"def"