当我创建一个默认的CancellationToken时,我可以在调试器中看到CancellationToken与其关联的CancellationTokenSource,它存储在私有的m_source字段中。
default
关键字"将返回结构体的每个成员初始化为零或null,具体取决于它们是值类型还是引用类型",而CancellationTokenSource
是引用类型,这怎么可能呢?
CancellationToken
有两个构造函数可以设置该字段,但它们都不相关,因为default(CancellationToken)
不调用构造函数,new CancellationToken()
(具有完全相同的行为)不调用构造函数,因为结构体不能有无参构造函数(尚未)。