Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2015, 13:58   #1
avd
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 79
По умолчанию Свойства-массивы

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

В delphi есть возможность объявлять в классе свойства-массивы.
Пример создания приводить не буду.
Использование:
Код:
Entity.PropArr[4, 7] := 'Now I'm going to do excrement';
sTmp := Entity.PropArr[4, 7];
Буду благодарен если подскажете как создать свойство-массив в C#.
avd вне форума Ответить с цитированием
Старый 24.02.2015, 14:52   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что-то я не понял использование, приведите лучше пример создания.

Чем свойство любого другого типа (int, string, MyClass) отличается от массива? Так же и объявляется.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.02.2015, 15:15   #3
avd
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 79
По умолчанию

Пример создания:
Код:
type
  TEe = class
  private
    fTestProp: array of array of boolean;
  public
    constructor Create();
    function GetTestProp(Index1, Index2: Uint8): boolean;
    procedure SetTestProp(Index1, Index2: Uint8; Value: boolean);
    property TestProp[Index1, Index2: Uint8]: boolean read GetTestProp write SetTestProp;
  end;

implementation
// ====================================================
function TEe.GetTestProp(Index1, Index2: Uint8): boolean;
begin
  Result := fTestProp[Index1, Index2];
end;
// ====================================================
procedure TEe.SetTestProp(Index1, Index2: Uint8; Value: boolean);
begin
  fTestProp[Index1, Index2] := Value;
end;
// ====================================================
constructor TEe.Create();
begin
  inherited Create();
  SetLength(fTestProp, 10, 10);
end;
avd вне форума Ответить с цитированием
Старый 24.02.2015, 15:29   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Есть indexer https://msdn.microsoft.com/en-us/library/6x16t2tx.aspx, но это не совсем то, скорее ближе к default у такого свойства в Дельфи.

Как вариант можно просто обычное свойство, возвращавшее ссылку на массив.
Код:
        class MyClass
        {
            private int[] _arr = new int[5];

            public int[] Arr { get { return _arr; } }
        }
Код:
            var obj = new MyClass();
            obj.Arr[0] = 1;
Или без свойств, просто эти Get/Set методы из вашего примера.

Или что-то такое:
http://stackoverflow.com/a/3547813/964478
https://msdn.microsoft.com/en-us/lib...=vs.71%29.aspx

В VB, кстати, они есть, и CLR это поддерживает: http://stackoverflow.com/questions/2...xed-properties

А задача какая? Что за класс? Может вам и не массив нужен.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 24.02.2015 в 15:37.
Alex11223 вне форума Ответить с цитированием
Старый 24.02.2015, 15:37   #5
avd
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 79
По умолчанию

Спасибо, понял. Видимо буду применять пару методов запись/чтение.
avd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
свойства в c# gylayko Помощь студентам 1 22.03.2013 17:07
Свойства Edit Ericnex Компоненты Delphi 1 10.09.2012 10:28
DBGrid свойства detalik Помощь студентам 4 06.04.2011 16:40
Компоненты и их свойства... magsim Компоненты Delphi 1 18.01.2010 13:18
Свойства файла ibn Общие вопросы .NET 0 23.04.2008 18:37