在项目中声明引用类型时,会习惯性的赋默认值null。
private ComponentA comA = null;
...
但是看其他人的写法习惯是没有赋默认值的
private ComponentA comA;
那么不主动赋默认值的引用类型变量是什么值呢?
答:还是null。
以下是官方文档列出的C#类型默认值:
https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/default-values
比较常用的内置整数类型和浮点数类型的默认值是0,bool类型的默认值是false。
实际项目中,这几种类型更多地会在声明时给出默认值,比如bool类型用于标志位等情况写出具体的默认值更易于理解。
而对于声明时默认值为null的引用类型呢,一般单独写Init函数进行初始化操作:
private void InitComponentA()
{
if(ComA == null)
{
CompA = new ComponentA();
// init property...
}
}
在用到该引用类型的地方,加一步判空或者 try/catch操作
private void FunctionA()
{
if(ComA == null)
{
//print error
return;
}
// operation about ComA
}