Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
maxistua

Возврат значения структуры

16.08.2011, 01:04. Показов 3355. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую

Есть структура
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public  struct Field
{
        string _name;
        string _type;
        string _length;
        string _value;
        string _defaultValue;
        bool _unsigned;
        bool _isNull;
 
// .... /// 
 
        public string Value
        {
               get{...}
               set{...}
        }
 
 
}
Есть ее объявление
C#
1
Field field1;
Доступ к значению
C#
1
field1.Value {get set}
И вот вопрос - Как можно переопределить метод доступа ко всей структуре?
Чтобы значение получать не через свойство Value, а непосредственно при обращении к структуре: field1 {get set}
C#
1
2
3
Пример: 
field1 = 5; // То же самое что и field1.Value = 5
string val = field1; // То же самое что и val = field.Value;
Цель.
Создание ORM системы для управления объектами.
На данном этапе - это определение объекта, описание полей и свойств.
И как бы хотелось иметь универсальное поле, у которого есть "свойство доступа по умолчанию" и в тоже время отдельные методы для дальнейшего управления
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.08.2011, 01:04
Ответы с готовыми решениями:

Возврат значения из метода
Всем привет, имею код int currentPosition = 0; // переменная текущей позиции курсора. Инициировали ...

Возврат значения из Task
Здравствуйте. Есть код, который сканирует данные с USB, и он работает (принимает байты с ардуино). Но, как известно, C# не позволяет двум...

Возврат значения разными способами
Помогите, пожалуйста! Даны действительные p, q. Код: using System; using System.Collections.Generic; using System.Linq; using...

4
 Аватар для atomohod
20 / 20 / 3
Регистрация: 01.04.2010
Сообщений: 57
16.08.2011, 01:37
C#
1
2
3
4
public static implicit operator Field (int i)
        {
            return new Field {Value = i.ToString()};
        }
это чтобы можно было
field1 = 5; // То же самое что и field1.Value = 5
над обратным буду еще думать...

Добавлено через 4 минуты
C#
1
2
3
4
 public static implicit operator string(Field f)
        {
            return f.Value;
        }
ну а так чтобы можно было
// То же самое что и val = field.Value;
это надо в структуре Field вставить

Добавлено через 17 минут
интересная ссылка по вашему вопросу
1
maxistua
16.08.2011, 09:37
Спасибо! Работает отлично!

Другой вопрос, переменная value - может быть любого типа (string, double, int, ...)
Есть универсальный тип var, но его можно использовать только внутри методов объекта.
При объявлении в структуре - компилятор выдает ошибку тип не найден.

Есть ли еще тип в C# который мог принимать значения с любых переменных без преобразования toString/ToInt и т.п.?

Возможно ли добавление свойств структуры "на лету", в конструкторе, в зависимости от передаваемых параметров?

Или лучше в структуре описать все возможные типы, и далее к ним реализовывать доступ?
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
16.08.2011, 09:43
Цитата Сообщение от maxistua Посмотреть сообщение
Спасибо! Работает отлично!

Другой вопрос, переменная value - может быть любого типа (string, double, int, ...)
Есть универсальный тип var, но его можно использовать только внутри методов объекта.
При объявлении в структуре - компилятор выдает ошибку тип не найден.

Есть ли еще тип в C# который мог принимать значения с любых переменных без преобразования toString/ToInt и т.п.?

Возможно ли добавление свойств структуры "на лету", в конструкторе, в зависимости от передаваемых параметров?

Или лучше в структуре описать все возможные типы, и далее к ним реализовывать доступ?
можно прописывать для каждого значения или оьекта тип object, так как это вроде как базовый тип для всех остальных,добавление свойств вроде невозможно на лету,можно ведь прост осоздать свойство типа список свойтств с типом object туда пихат ьвсе свойства разных типов, лучше в структуре описать все заранее.
0
 Аватар для atomohod
20 / 20 / 3
Регистрация: 01.04.2010
Сообщений: 57
16.08.2011, 13:53
C#
1
2
3
4
5
6
7
8
9
10
11
public dynamic Value;
 
        public static implicit operator Field (int o)
        {
            return new Field {Value = o};
        }
 
        public static implicit operator int(Field f)
        {
            return f.Value;
        }
но тогда теряется однозначность, к сожалению. (и это только для .NET 4.0 и выше =))

т.е. можно добавить еще к структуре:
C#
1
2
3
4
5
6
7
8
9
public static implicit operator Field (string o)
        {
            return new Field {Value = o};
        }
 
        public static implicit operator string(Field f)
        {
            return f.Value;
        }
но тогда нужно будет прописывать например в вызове
C#
1
Console.WriteLine((string)field1);
приведение к типу чтобы компилятор знал, в этом месте какое приведение типа нужно. По сути явное преобразование вводится..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2011, 13:53
Помогаю со студенческими работами здесь

Возврат значения типа bool
Ругаеться на то что не все ветви кода возвращяют значение static public bool Podsch(Ob pol) { ...

Добавить возврат значения из программы
static void Main(string args) { double a, b, c; Console.WriteLine("Введите 1 число"); a =...

Возврат более одного значения из метода
Доброго времени суток, читаю книгу SCHILDT'а и в конце каждой главы делаю упражнение что бы закрепить материал в главе 6 я познакомился с...

Возврат значения функции по ссылке возможен?
Добрый день! Хочу уточнить некоторый принцип работы с функциями, возвращающими значения. Есть ли возможность в C# возвращать значения...

C# возврат значения из потока
и снова вопрос про потоки: есть форма.на ней label1.нужно label.Text передать значение IPStatus.В обычном виде это так: Ping p = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru