Приведение объекта к длинному - PullRequest
0 голосов
/ 28 мая 2018

К сожалению, в нашей (устаревшей) кодовой базе есть свойство класса, имеющего тип object и может быть либо int, либо long.

При попытке привести егодля длинного типа:

long id = (long) dBLockTabellenOptionen.Id;

Я получаю следующее исключение:

Исключение: Fehler в DoOneWorkRound:
Указанное приведение недопустимо,Указанный состав недействителен.-> Указанное приведение недействительно.
--- Список исключений ---
System.InvalidCastException: Указанное приведение недействительно.

Как можно безопасно привести его к long без исключения?

Отказ от ответственности: Я знаю, что это свойство сильно пахнет, но в данный момент его рефакторинг будет слишком большим, и поскольку это приложение будет запущеночтобы переписать в ближайшее время мы сделаем это прямо тогда

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

long id = Convert.ToInt64(dBlockTabellenOptionen.Id); должен сделать трюк.

0 голосов
/ 28 мая 2018

Вы пытались использовать Try.Parse

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