C# object转数值
时间: 2024-09-30 17:07:09 浏览: 20
在C#中,如果你有一个`object`类型的变量,它可以存储任何数据类型(值类型或引用类型)。当你需要将`object`转换为特定的数值类型(如整数、浮点数等)时,你可以使用以下方法:
1. **强制转换**(Implicit Conversion):如果`object`确实包含一个数值类型的数据,可以直接使用强制类型转换,例如:
```csharp
object objValue = 42;
int num = (int)objValue; // 如果objValue是一个整数,这行会成功
```
2. **`Convert.ToInt32` 或 `Convert.ToDecimal` 等方法**:如果你不确定对象的具体类型,可以使用`System.Convert`类提供的静态方法来进行转换,如:
```csharp
object objValue = "35";
int num = Convert.ToInt32(objValue);
double decimalNum = Convert.ToDecimal(objValue);
```
这些方法会在无法安全转换时抛出异常。
3. **条件检查和异常处理**:在转换前先检查`object`是否为正确的类型是好的实践,避免运行时错误:
```csharp
object objValue = "35";
if(objValue is string str && Int32.TryParse(str, out int num))
Console.WriteLine(num);
else
throw new ArgumentException("Invalid value");
```
**相关问题--:**
1. C#中如何防止在尝试转换时发生异常?
2. 转换`object`到自定义类型时需要注意哪些情况?
3. 强制类型转换和`Convert`类之间的区别是什么?