很多奇技淫巧,没有用到不知道,用的多了,奇技淫巧就变成了实用技巧。
用了dotnet这样的语言,使用对象的前提是必须判断null,于是大量的if(obj!=null)obj.foo()之类的代码就应运而生。
还好dotnet引入了 ?? 操作符号。
原代码:这段代码的目的是连接系列号字符串——把 serialout 和 serialin两个字符串用 splitter 连接起来,但是必须考虑到null的情况。
// old code
var serials = "";
if (serialout != null && serialin != null)
{
serials = serialout + splitter + serialin;
}
else if (serialout != null )
{
serials = serialout;
}
else if (serialin != null)
{
serials = serialin;
}
新代码:利用?? 操作符,把判null的过程变得不那么琐碎,而是看起来简单已读。
var serials = (serialout ?? "") + splitter + (serialin ?? "");
serials.TrimStart(splitter);
这里用到了??操作符,??表是,如果操作符前面的对象不为null,就用前面的对象,否则返回后面的对象。
TrimStart 如果serials的第一个字符是splitter的化,删除它。
这样就把原来的若干行变成一行,也不再需要嵌套,代码更加清晰易懂。
在我们的代码中,这样的代码技巧应用的很多。
分享到:
相关推荐
- 指针运算时要注意优先级,以及对指针操作符的正确使用,例如*p++与(*p)++的区别。 - switch语句的case块默认情况是不自动跳出的,如果不需要贯穿执行,应该使用break语句。 - 使用malloc()分配内存后,若未成功...
- Python没有三元操作符,可以使用if-else语句替代。 - Python没有Switch-Case语句,通常使用字典或if-elif-else结构实现。 4. **添加注释**:注释能帮助他人和自己理解代码逻辑,提高代码可读性。 5. **适当...
传统上,`is`操作符后面会跟一个变量名,如果转换成功,这个变量会被赋值为转换后的对象。例如: ```csharp if (obj is string str) { // 如果obj是字符串,str将被赋值 Console.WriteLine(str); } else { // ...
- 字符串连接:使用`+`操作符连接两个字符串。 - 字符串分割:使用`split()`方法按指定分隔符分割字符串。 - 字符串替换:使用`replace()`方法替换字符串中的字符或子串。 - **常见问题**: - 处理空字符串和...
开发者在编写代码时,应时刻保持警惕,充分考虑到可能的网络攻击。SQL注入是Web开发中常见的安全隐患,开发者不能轻信用户的输入,应使用参数化查询或预处理语句来提高安全性。例如,使用PDO或Mysqli代替老式的mysql...
但这也要求开发者对内存泄漏和悬挂指针等问题保持警惕。 9. **标准库**:C++ 标准库提供了大量有用的函数和类型,如输入/输出流(iostream)、字符串处理(string)、数学函数(cmath)等。 10. **C++11 及以后的...
综上所述,PHP的数据类型转换是其动态特性的体现,它既强大又灵活,但同时也需要开发者在使用时保持警惕,以避免潜在的问题。正确地理解和运用类型转换,对于编写高效、健壮的PHP代码至关重要。
在 Windows 中,每个注册表项都有一个安全描述符,它定义了哪些用户或组可以对这个键进行读取、写入、删除等操作。默认情况下,只有管理员组的成员才能修改注册表的权限,但我们可以使用 Delphi 来改变这些权限。 ...
在PHP编程中,防止SQL注入是一项至关重要的任务,因为注入攻击可能导致数据泄露、系统瘫痪甚至整个网站的安全性被破坏...然而,安全性是一个持续的过程,需要开发者时刻保持警惕,遵循最佳实践,并定期审查和测试代码。
7. **内存管理**:C++允许程序员直接控制内存分配和释放,通过new和delete操作符进行动态内存管理,但同时也要求程序员对内存泄漏和野指针等问题保持警惕。 8. **输入/输出流(I/O Stream)**:C++的iostream库提供...
10. **内存管理**:C++允许程序员直接管理内存,提供了new和delete操作符进行动态内存分配和释放,但同时也要求程序员对内存泄漏和野指针等问题保持警惕。 11. **输入/输出流**:C++的iostream库提供了cin和cout来...
6. **switch的灵活运用**:`switch`不仅用于判断变量,还可以用于多条件分支,如将多个`if...else if...`替换为`switch(TRUE)`,使代码更简洁易读。 7. **变量先定义后使用**:未定义的变量使用起来会比已定义的慢...
在JavaScript编程中,字符运算和数字运算的混合是常见的陷阱之一。由于JavaScript是一种弱类型的...在编写JavaScript时,保持警惕,合理使用类型转换函数,以及正确地进行比较操作,能有效提高代码的健壮性和可预测性。