gpt4 book ai didi

c# - Cast 有时会抛出异常,但 "as"后跟取消引用不会

转载 作者:太空宇宙 更新时间:2023-11-03 17:06:02 24 4
gpt4 key购买 nike

我希望这适合这个网站,因为我已经找到了答案,所以它更像是一个测验而不是一个问题。

这段 C# 代码可以正常工作:

WidgetRef = widget as IWidget;
WidgetRef.Init();

但是,如果我尝试将其更改为:

WidgetRef = (IWidget)widget;
WidgetRef.Init();

在某些情况下,我会收到“无法转换为 IWidget”的异常。

起初我很惊讶这怎么可能,因为如果它不能在第二个例子中转换,它应该在第一个例子中抛出一个空异常。但我发现不一定如此:)

这怎么可能?

最佳答案

我猜想您的其余代码中发生了某些事情,导致小部件对象不可“类型转换”。 Cast 和“As”不是一回事。也许这篇文章可能会给您一些想法。

http://blogs.msdn.com/b/ericlippert/archive/2009/03/19/representation-and-identity.aspx

关于c# - Cast 有时会抛出异常,但 "as"后跟取消引用不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6916294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com