将所选项目归因于特定类型

本文关键字:类型 归因于 项目 选项 | 更新日期: 2023-09-27 18:36:58

我有一个组合框,里面有某种类型的项目。在发生事件时,我想将该项分配给变量。目前,由于 SelectedItem 的类型是 对象,我需要像这样将其拆箱为所需的类型。

Something something = ThatComboBox.SelectedItem as Something;

如果枚举类型更不方便,因为那样我需要强制转换或 null-fy 它,然后像这样合并。

Something something;
  something = (Something)ThatComboBox.SelectedItem;
  something = ThatComboBox.SelectedItem as Something? ?? default(Something);

想知道我是否可以(如果是的话,我该怎么做)组合框的属性(或类似),以便当我获得其所选项目时,我会将其作为我心中想要的任何类型。或者,至少,它是拳击前的类型。

请注意,我想知道我是否可以在没有扩展方法的情况下做到这一点。

将所选项目归因于特定类型

ComboBox.SelectedItem具有object类型,因此可能包含对任何类型(或null)的引用。

as oerator 根本不做任何工作,只是使编译器能够将引用视为对另一种类型的引用(在您的情况下是对 Something 的引用)。

不涉及运行时开销,只需在源代码中多一行。我看不出为什么/如何避免这种情况。