0 / 0 / 0
Регистрация: 21.08.2009
Сообщений: 10
|
|
1 | |
Как получить ссылку на ячейку DataTable?26.08.2009, 15:43. Показов 15853. Ответов 9
Метки нет (Все метки)
0
|
26.08.2009, 15:43 | |
Ответы с готовыми решениями:
9
Как в одну ячейку DataTable записать дату? Как сделать ссылку на случайную ячейку Как создать динамическую ссылку на ячейку? Как создать простейшую ссылку/указатель на ячейку памяти/переменную |
81 / 80 / 4
Регистрация: 06.04.2009
Сообщений: 326
|
||||||
26.08.2009, 16:04 | 2 | |||||
Вы это имели ввиду?
0
|
0 / 0 / 0
Регистрация: 21.08.2009
Сообщений: 10
|
||||||
26.08.2009, 16:28 [ТС] | 3 | |||||
нет я имел ввиду ссылку, чтото вроде
0
|
81 / 80 / 4
Регистрация: 06.04.2009
Сообщений: 326
|
||||||
26.08.2009, 17:13 | 4 | |||||
Честно - не понятно
0
|
0 / 0 / 0
Регистрация: 21.08.2009
Сообщений: 10
|
||||||
27.08.2009, 09:27 [ТС] | 5 | |||||
приведу пример,
0
|
81 / 80 / 4
Регистрация: 06.04.2009
Сообщений: 326
|
||||||
27.08.2009, 10:03 | 6 | |||||
Теперь понятно досконально Но не могу ничего посоветовать кроме как такой длинной записи:
1
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
27.08.2009, 10:52 | 7 |
kokain, вряд ли что-то подобное реализовано. Потому как смысла в этом нет. Просто для больших таблиц глупо создавать по переменной на каждую ячейку. Использование матриц тоже не оправдано, поскольку дата грид - это и есть по сути матрица.
Работа с гридом, как показал homich77, будет в любом случае быстрее работать, чем если ты напишеш свой способ связи ячейки с переменной
0
|
Администратор
83618 / 52196 / 244
Регистрация: 10.04.2006
Сообщений: 13,426
|
|
27.08.2009, 11:09 | 8 |
Сообщение было отмечено Памирыч как решение
Решение
Давайте разберемся, что происходит в данном случае. Сначала вот этим кодом
вы копируете указатель на значение ячейки в temp, т.к. object - ссылочный тип. Но что происходит потом? 0 - имет тип значения, а не ссылочный. Поэтому здесь происходит боксинг (заворачивание в ссылочный тип и размещение в куче) значения 0 и присвоение ссылки на этот объект в temp. И вы получаете абсолютно закономерный результат.
1
|
tokwell
|
||||||
07.05.2013, 20:27 | 9 | |||||
Дружищще ты просто выручил . Огромадное спс долго искал как.
Добавлено через 1 минуту Дружищще ты просто выручил . Огромадное спс долго искал как.
|
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
|
||||||
08.05.2013, 12:15 | 10 | |||||
mik-a-el, не совсем так в общем случае. В c# есть типы-ссылки и есть типы-значения. если мы имеет дело с типом-значением, то тогда присваивание выполняет копирование значения, а если ссылочный тип - то получаем ссылку.
Ячейка DataTable - это object, а object, хоть и является ссылочным типом, однако если хранит тип-значение, то и ведет себя как тип-значение. Еще одно исключение - это тип String. Хоть по сути он является ссылочным типом, однако при присваивании ведет себя как тип-значение, так как это тип "только для чтения". Разберемся на конкретном примере:
для того, чтоб избежать получения ссылки вместо значения для ссылочного типа следует перегрузить и использовать метод Clone() интерфейса ICloneable
0
|
08.05.2013, 12:15 | |
08.05.2013, 12:15 | |
Помогаю со студенческими работами здесь
10
Как получить индекс DataTable? Как создать ссылку на long и наполнить значениями типа long-ссылка DataTable Data::DataTable узнать/отредактировать ячейку Как получить DataTable из двух связанных таблиц? Как получить индекс строки таблицы DataTable Как получить данные из DataTable использую linq Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |