我有一个包含 Something 类型项目的组合框。在事件发生时,我想将该项目分配给变量。目前,由于 SelectedItem 的类型为 Object ,我需要将其拆分为所需的类型。
Something something = ThatComboBox.SelectedItem as Something;
如果按枚举键入类型会更加不方便,因为那时我需要对它进行强制转换或者为空,然后像这样合并。
Something something;
something = (Something)ThatComboBox.SelectedItem;
something = ThatComboBox.SelectedItem as Something? ?? default(Something);
我想知道我是否可以(如果是这样我怎么做)属性(或类似)组合框,这样当我得到它所选择的项目时,我会得到它作为我心中所想的任何类型。或者,至少,拳击之前的类型。
请注意,我想知道我是否可以没有扩展方法。
答案 0 :(得分:0)
ComboBox.SelectedItem
的类型为object
,因此它可能包含对任何类型(或null)的引用。
as
oerator根本不起作用,只是让编译器将引用视为对另一种类型的引用(在您的情况下是对Something的引用)。
不涉及运行时开销,源代码中只有一行。我不明白为什么/如何避免这一点。