我正在阅读Essential C# 3.0这本书,想知道这种检查委托是否为空的方式是否好:
class Thermostat
{
public delegate void TemperatureChangeHandler ( float newTemperature );
public TemperatureChangeHandler OnTemperatureChange { get; set; }
float currentTemperature;
public float CurrentTemperature
{
get { return this.currentTemperature; }
set
{
if ( currentTemperature != value )
{
currentTemperature = value;
TemperatureChangeHandler handler = OnTemperatureChange;
if ( handler != null )
{
handler ( value );
}
}
}
}
}
如果类型是不可变的,解决方案是否会改变?我想也许使用不可变性,您就不会遇到这个线程问题。