Добрый день.
Подскажите как объявить векторное свойство при написании класса на C#, т.е. аналог кода
property SomeValue[Index:integer] : double read GetSomeValue write SetSomeValue;
на Object Pascal
Здравствуйте, pnb, Вы писали:
pnb>Подскажите как объявить векторное свойство при написании класса на C#, т.е. аналог кода
Т.е. индексер?
public int this[int index]
{
get
{
return x[index];
}
set
{
x[index] = value;
}
}
... << RSDN@Home 1.1.3 stable >>
public Double this[int index]
{
get
{
//возвращем значение
}
set
{
//присваиваем значение
}
}
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Михаил Можаев, Вы писали:
ММ>Т.е. индексер?
Хм. Не совсем то. Аналога в C# (и не только) нет.
... << RSDN@Home 1.1.3 stable >>
Здравствуйте, pnb, Вы писали:
pnb>Добрый день.
pnb>Подскажите как объявить векторное свойство при написании класса на C#, т.е. аналог кода
pnb>pnb>property SomeValue[Index:integer] : double read GetSomeValue write SetSomeValue;
pnb>
В C# векторных свойств как в Дельфи нет — есть индексеры
В твоем случае SomeValue надо сделать классом и определить у него индексер.
// cs_keyword_indexers.cs
using System;
class IndexerClass
{
private int [] myArray = new int[100];
public int this [int index] // Indexer declaration
{
get
{
// Check the index limits.
if (index < 0 || index >= 100)
return 0;
else
return myArray[index];
}
set
{
if (!(index < 0 || index >= 100))
myArray[index] = value;
}
}
}
public class MainClass
{
public static void Main()
{
IndexerClass b = new IndexerClass();
// Call the indexer to initialize the elements #3 and #5.
b[3] = 256;
b[5] = 1024;
for (int i=0; i<=10; i++)
{
Console.WriteLine("Element #{0} = {1}", i, b[i]);
}
}
}
... << RSDN@Home 1.1.4 >>