Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аналог записи с условием Delphi в C# 
:(
    Опции темы
ajunta
Дата 2.7.2008, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.4.2007

Репутация: нет
Всего: нет



Здравствуйте!

Скажите пожалуйста, есть ли в C# аналог записи с усовием из Delphi?

В Delphi имела место конструкция вида:


Код

type TMyRecord = record
    field1:integer;
    field2:real;
    case StrOrInt:boolean of
        true: (str:string[255]);
        false: (int:integer);
end;


То есть это обычная запись, но память для полей str и int выделяется в зависимости от значения переменной StrOrInt.

Возможно ли создать в C# класс, либо структуру с аналогичной идеей?

Это сообщение отредактировал(а) ajunta - 2.7.2008, 11:04
PM MAIL   Вверх
altarvic
Дата 2.7.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 2.3.2007

Репутация: 1
Всего: 1



Если не вру, то память для полей str и int выделяется одна, по максимому (255)
На C# примерно так (но эта запись используется в основном для взаимодействия с неуправляемым кодом, иначе не вижу смысла зачем это нужно)
Код

    [StructLayout(LayoutKind.Explicit)]
    internal struct A
    {
        [FieldOffset(0)]
        int field1;

        [FieldOffset(4)]
        double field2;

        [FieldOffset(12)] 
        bool StrOrInt;

        [FieldOffset(14)] 
        string String;

        [FieldOffset(14)] 
        int Number;
    }

PM MAIL   Вверх
Любитель
Дата 2.7.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Цитата(ajunta @  2.7.2008,  11:03 Найти цитируемый пост)
То есть это обычная запись, но память для полей str и int выделяется в зависимости от значения переменной StrOrInt.

Память как раз выделяется под поля, которые занимают максимум памяти. А StrOrInt реально ни на что не влияет.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.