以下のコードは、ユーザー定義の変換は囲み型との間で変換する必要がありますが、スニペット#2は変換しないことを示しています...ユーザー定義の変換ルーチンは、ルーチンを含むクラスとの間で変換する必要があるようです。
私の選択肢は何ですか?拡張メソッドとしての明示的な演算子?他に何か?
public static explicit operator ObservableCollection<ViewModel>(ObservableCollection<Model> modelCollection)
{
var viewModelCollection = new ObservableCollection<ViewModel>();
foreach (var model in modelCollection)
{
viewModelCollection.Add(new ViewModel() { Model = model });
}
return viewModelCollection;
}
スニペット#2
public static explicit operator ViewModel(Model model)
{
return new ViewModel() {Model = model};
}
前もって感謝します!