gpt4 book ai didi

c# - 更正 VB 的 CTYPE() 的 C# 转换对应物

转载 作者:行者123 更新时间:2023-11-30 19:33:41 30 4
gpt4 key购买 nike

下面是我移植到 C# 重写的 VB 片段。我的问题是分配后的 receipt_date 是什么?它仍然是一个对象还是一个字符串

Dim receipt_date As Object
receipt_date = CType(dr.Item("RECTDT"), String)

这会是正确的 C# 对应物吗?

object receipt_date;
receipt_date = dr["RECTDT"].ToString();

这两个执行后 VB 版本,receipt_date 是否等于 C# 版本?如果不是,我需要做什么才能做到这一点?谢谢

最佳答案

是的,您最终会得到相同的结果。它在语义上与 VB 版本不同(您显式调用 ToString() 而不是使用 CType,它大致等同于 C# 中的强制转换),但它在功能上是相同的.它也更安全,因为在数据库中转换空值(在运行时将是 DBNull)会引发异常。

不过,为了全面起见,实际的 C# 副本应该是这样的:

var receipt_date = (string)dr["RECTDT"];

尽管如此,作为一种风格,尽量避免隐式键入(即,使用 var 关键字而不是说 stringint ) 对于简单类型。 var 在类型将来可能发生变化(并且不重要)时很有用,或者如果类型很长和/或复杂并且 var 使其更具可读性。在这种情况下,我建议:

string receipt_date = (string)dr["RECTDT"];

关于c# - 更正 VB 的 CTYPE() 的 C# 转换对应物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231049/

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