我正在阅读 MvvmLight 的源代码,我在 ViewModelBase.cs 中看到了这个函数:
protected virtual void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler changedEventHandler = this.PropertyChanged;
if (changedEventHandler == null)
return;
changedEventHandler((object) this, new PropertyChangedEventArgs(propertyName));
}
我不明白为什么这里有类型转换,但因为这个功能在 MvvmLight 中很关键,我猜这样做有一个好处......
最佳答案
如果您通过 Reflector
查看代码,您总会看到类似这样的奇怪内容,因为 Visual Studio 允许您采用编译器为您制定的捷径,例如传递类型作为对象而不将其转换为对象。
但是为了回答您的问题,事件处理程序需要一个对象,因此它将 this
作为 (object)
传递
关于c# - .NET 将对象转换为...对象的目标是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310445/