小编典典

将对象转换为 int 的更好方法

all

这可能是微不足道的,但我想不出更好的方法来做到这一点。我有一个 COM 对象,它返回一个变体,它成为 C# 中的一个对象。我可以把它变成 int
的唯一方法是

int test = int.Parse(string.Format("{0}", myobject))

有没有更清洁的方法来做到这一点?谢谢


阅读 99

收藏
2022-06-29

共1个答案

小编典典

你有几个选择:

  • (int)’ 演员表操作员。如果对象在继承层次结构中的某个级别 已经是 整数,或者定义了隐式转换,则可以使用。

  • int.Parse()/int.TryParse()’用于从未知格式的字符串转换。

  • int.ParseExact()/int.TryParseExact()‘用于从特定格式的字符串转换

  • Convert.ToInt32() ‘ 用于转换未知类型的对象。它将使用显式和隐式转换或 IConvertible 实现(如果已定义)。

  • as int?’注意“?”。该as运算符仅用于引用类型,因此我使用了“?” 表示一个Nullable<int>。” as” 操作符的工作方式类似Convert.To____(),但认为TryParse()而不是Parse():如果转换失败,它会返回null而不是抛出异常。

其中,(int)如果对象真的只是一个装箱的整数,我会更喜欢。否则Convert.ToInt32()在这种情况下使用。

请注意,这是一个非常 笼统 的答案:我想对达伦·克拉克的回应给予一些关注,因为我认为它在解决这里的 细节
方面做得很好,但是来晚了,还没有投票。无论如何,他得到了我对“接受的答案”的投票,还推荐了
(int),指出如果它失败(int)(short)可能会起作用,并建议您检查调试器以找出实际的运行时类型。

2022-06-29