代码之家  ›  专栏  ›  技术社区  ›  xeraphim

将目标投射到长

  •  3
  • xeraphim  · 技术社区  · 8 年前

    不幸的是,在我们的(遗留)代码库中,有一个类的属性具有 object 也可以是 int 或者 long .

    当你试着把它抛到这样一个长镜头时:

    long id = (long) dBLockTabellenOptionen.Id;

    我得到以下例外:

    例外情况:Dooneworknound中的费勒:
    指定的强制转换无效。指定的强制转换无效->指定的强制转换无效。
    ---例外列表---
    系统InvalidCastException:指定的强制转换无效。

    我怎么能省得把它扔给一个 长的 没有例外吗?

    免责声明: 我知道,这个属性是一个很大的气味,但在这一刻,它的重构将是太多,因为这个应用程序将很快被重写,我们将立即这样做

    2 回复  |  直到 8 年前
        1
  •  6
  •   user622505    8 年前

    long id = Convert.ToInt64(dBlockTabellenOptionen.Id); 我们应该做到这一点。

        2
  •  -2
  •   Herman    8 年前

    你试过用try吗。作语法分析

    long bigInteger = 0;
    long.TryParse(dBLockTabellenOptionen.Id, out bigInteger);