gpt4 book ai didi

c# - C# 中 Cast 和 Convert 的区别

转载 作者:太空狗 更新时间:2023-10-30 00:06:17 31 4
gpt4 key购买 nike

我有一个 sql 数据读取器...我必须从中获取一个十进制值。

有什么区别

  1. (小数)datareader["百分比"]

  1. Convert.Todecimal(datareader["percent"])

这两种方法的利弊是什么。

最佳答案

只有当 datareader["percent"] 返回的对象是 Decimal 类型时,转换才会成功。当对象是任何可转换为 Decimal 的类型时,转换将成功。这包括 intlongshort 等。或者更一般地说,任何实现 IConvertible 并返回有用的IConvertible.ToDecimal() 的值可以传递给 Convert.ToDecimal()

例如:

csharp> object a = (int)1;

csharp> a.GetType();
System.Int32

csharp> var dec = (decimal)a;
System.InvalidCastException: Cannot cast from source type to destination type.
at Class3.Host (System.Object& $retval) [0x00000] in <filename unknown>:0
at Mono.CSharp.Evaluator.Evaluate (System.String input, System.Object& result, System.Boolean& result_set) [0x00000] in <filename unknown>:0
at Mono.CSharpShell.Evaluate (System.String input) [0x00000] in <filename unknown>:0

csharp> var dec = Convert.ToDecimal(a);

csharp> dec;
1

csharp> dec.GetType();
System.Decimal

关于c# - C# 中 Cast 和 Convert 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4485974/

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