Стиль массива-индекса против Get ..., получение данных из IDataReader в C # - PullRequest
1 голос
/ 30 мая 2019

Недавно я натолкнулся на два, казалось бы, эквивалентных способа получения строки из IDataReader (предположим, reader реализует интерфейс IDataReader):

reader.GetString(1) reader[4] as string

Почему вы используете метод "индекс массива" по сравнению с методом "Get"? В чем разница между двумя подходами?

1 Ответ

0 голосов
/ 03 июня 2019

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

reader.GetString(1) сгенерирует исключение, если мы не сможем привести данные во втором столбце (с индексом 1) к string. reader[4] as string использует ключевое слово as, и поэтому, если данные в пятом столбце (индекс 4) не могут быть приведены к строке, мы просто возвращаем null, исключение составляет , а не выброшены.

...