C# string 对象 ToUpper Equals的使用注意事项
string特性
编译器直接支持的类型:
sbyte / byte / short / ushort / int / uint / long / ulong
char / float / double / bool / decimal /object / string
string 是基元类型的一种,
null 字符串:没有分配内存;空字符串分配了内存,但内存里面没有数据.
//null 字符串
string teatA = null;
//空字符,不分配内存
string teatB = sting.Empty;
ToUpper 使用时需要判空操作
// 直接使用ToUpper
string s = "test";
s.ToUpper();
// 如果string 对象是null 时,
s = null;
s.ToUpper();
//此时会发生异常
//"System.NullReferenceException:“Object reference not set to an instance of an object."
//可以使用C# 的新特性来处理为null 的情况,当然也可以if 判空
s?.ToUpper();
Equals使用时应注意比较对象的先后位置
// 变量s 已知,testValue 需要比较的对象
string s = "test";
if( s.Equals(testvalue))
{
//todo
}
//用以上的方式没问题,如果用以下方式有可能会有异常
if( testValue.Equals(s))
{
//todo
}
// 如果testValue 对象是null 时,会发生空引用的异常,此时需要多一步对对象的判空操作