Есть ли разница между приведением int.Parse () к long и использованием long.Parse? - PullRequest
1 голос
/ 30 декабря 2011

Я только что наткнулся на какой-то код, где разработчик использовал

fooBar((long)int.Parse(someVariable));

Функция fooBar просто ожидает long в качестве параметра и использует его для запроса SQL.

Есть ли разница между этим и использованием long.Parse(...)?

Ответы [ 4 ]

4 голосов
/ 30 декабря 2011

Разница в том, что someVariable представляет значение, которое не может вписаться в int.

4 голосов
/ 30 декабря 2011

Основное отличие состоит в том, что с int.Parse вам гарантировано число в диапазоне int.Если число находится за пределами этого диапазона, OverflowException будет выброшено на int.Parse (в то время как long.Parse с радостью примет его, пока число находится в пределах диапазона long).

4 голосов
/ 30 декабря 2011

Да, long.Parse будет обрабатывать числа, которые больше int. Так что это предпочтительнее, если только вы не хотите исключения, если число не может вписаться в int.

Также приведение от int к long не требуется, поскольку существует неявное приведение.

0 голосов
/ 30 декабря 2011

когда вы используете long.Parse, результат функции int64, но когда вы используете int.Parse, результат int32.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...