#c#
#c#
Вопрос:
Похоже, что увеличить значение можно, только сказав:
DataRow someRow = GetRow();
someRow[0] = someRow[0] 10;
Есть ли какой-либо способ выполнить эту операцию на C #? Кажется, я ничего не могу найти…Я предполагаю, что это связано с потоком данных.Item возвращает объект.
DataRow someRow = GetRow();
someRow[0] = 10;
someRow[0] -= 10;
someRow[0] *= 5;
Комментарии:
1. Вы уверены, что это
someRow[0] 10
работает?2. «. Я предполагаю, что это связано с потоком данных. Item возвращает объект. » — да. Столбец может иметь строковое значение, поэтому
= 10
он не будет действительным.3. Единственное, что будет компилироваться, это
someRow[0] = (int)someRow[0] 10;
Ответ №1:
Есть ли какой-либо способ выполнить эту операцию на C #?
Нет, сначала вам нужно преобразовать или преобразовать someRow[0]
в соответствующий тип, а затем вы можете использовать сложение, умножение и т.д.
Следующее приведет к ошибке компиляции:
someRow[0] = someRow[0] 10;
поскольку someRow[0]
тип s Object
равен, а 10 является целочисленным литералом.
Правильный подход был бы примерно следующим:
someRow[0] = (int)someRow[0] 10;
Ответ №2:
В качестве альтернативы вы можете использовать метод TryParse в c # и проверить, действительно ли возвращаемый объект является целым числом, а затем выполнить требуемую операцию.
Нравится:
int temp;
Int64.TryParse((String)someRow[0], out temp);
someRow[0] = temp 10;
Вы могли бы преобразовать onject в int, просто приведя его: (int)someRow[0] или используя методы ConvertTo, но приведенные выше методы наименее подвержены ошибкам.