将所选项目归于某种类型

Attributing the selected item to a certain type

我有一个组合框,其中包含 Something 类型的项目。在发生事件时,我想将该项目分配给一个变量。目前,由于 SelectedItemObject 类型,我需要像这样将其拆箱为所需的类型。

Something something = ThatComboBox.SelectedItem as Something;

如果用枚举类型,那就更不方便了,因为那时我需要强制转换或为空,然后像这样合并。

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

我想知道我是否可以(如果可以,我将如何处理)属性(或类似的)组合框,以便当我得到它的选定项目时,我可以得到它作为我内心想要的任何类型。或者,至少,拳击之前的类型。

请注意,我想知道我是否可以不使用 扩展方法。

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

as 运算符根本不起作用,只是使编译器能够将引用视为对另一种类型的引用(在您的情况下是对 Something 的引用)。

不涉及运行时开销,只是源代码中多了一行。我看不出要避免这种情况 why/how。