gpt4 book ai didi

vb.net - 为什么使用 TryCast 而不是 DirectCast?

转载 作者:行者123 更新时间:2023-12-03 01:32:53 24 4
gpt4 key购买 nike

当我尝试将 Object obj 转换为类型 T 时,如果无法转换,则说明有问题。

在我转换对象之后,我将寻找使用转换对象的方法。

相反,我会期望在我将要转换它的地方得到异常,而不是说我将在哪里使用该对象。

从这个意义上来说,使用DirectCast而不是TryCast更好吗?或者我是否错过了使用 TryCast 的其他意义?

最佳答案

(对于 C# 开发人员来说,TryCast 类似于“as”,DirectCast 相当于普通转换。正如 Mike 在评论中指出的那样,“as”有效对于可为 null 的值类型,但 TryCast 则不然。)

如果该值确实应该是 T,那么 DirectCast 确实是正确的方法 - 它会快速失败,并出现相应的错误。

当目标是“错误”类型是合法的时,

TryCast 是合适的。例如,要获取容器中的所有 Button 控件,您可以遍历控件集合并尝试将每个控件强制转换为 Button。如果它有效,你就用它做一些事情 - 如果它不起作用,你就继续前进。 (使用 LINQ,您只需使用 OfType 即可达到此目的,但您明白我的意思...)

根据我的经验,直接强制转换比 TryCast 更合适 - 尽管使用泛型时我发现自己的强制转换比以前要少得多。

关于vb.net - 为什么使用 TryCast 而不是 DirectCast?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/385714/

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