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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проперти с параметром 
V
    Опции темы
MasterOfCode
Дата 27.8.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Возможно ли создать проперти с параметром? Перерыл справку, не чего не нашел :(
На форуме нашел тему, но там не понятно... :(
Код

class prop
{
    protected string[] prp;
    //...
    //ах как бы хотелось чтоб была возможность делать так...
    public string Name[int index]
    {
        get { return prp[index]; }
    }
    //...
}



--------------------
user posted image
PM ICQ   Вверх
QryStaL
Дата 27.8.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


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

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



Цитата(MasterOfCode @  27.8.2008,  13:48 Найти цитируемый пост)
Перерыл справку, не чего не нашел :(

Это называется "индексатор"

Код

class SampleCollection<T>
{
    private T[] arr = new T[100];
    public T this[int i]
    {
        get
        {
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
MasterOfCode
Дата 27.8.2008, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



А если у меня не массив, а контенер. 
Т.е. я использую List<MyClass>, а не T[] (Очевидно что вместо Т вставить какой нибудь string нужно).
Как мне конструктор класса SampleCollection<T> объявить и туда передать какие то данные, там обработать и заполнить свой List<MyClass>?


--------------------
user posted image
PM ICQ   Вверх
QryStaL
Дата 27.8.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


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

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



Это был просто пример. Индексатор - это просто синтаксис для удобного обращения к элементам внутренней коллекции.

Код

class prop
{
    protected string[] prp;

    //...

    public string this[int index]
    {
        get { return prp[index]; }
    }

    //...
}



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
MasterOfCode
Дата 27.8.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Хорошо, делаю так:
Код

    public class Block
    {
        public class cLines
        {
            private List<Line> lines;

            public Lines(string[] sLines) //Ошибка
            {
                lines = new List<Line>();
                for (int i = 0; i < sLines.Length; i++ )
                {
                    lines.Add(new Line(line));
                }
            }

            public Line this[int index]
            {
                get { return lines[index]; }
            }
        }

        private cLines Lines;
        public Block(string[] Lines)
        {
            string[] s = new string[4] {"1","2", "3", "4"}; 
            Lines = new cLines(s);
        }

        
    }


Вылетает ошибка Method must have a return type. В чем проблемма?



--------------------
user posted image
PM ICQ   Вверх
marcusmae
Дата 27.8.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


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

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



Цитата(MasterOfCode @  27.8.2008,  14:45 Найти цитируемый пост)
Method must have a return type.


Код

public Lines(string[] sLines) //Ошибка


- конструктор превратился в метод (для которого должен иметься возвращаемый тип), поскольку класс был назван cLines, а конструктор не переименован или наоборот. Обычно если переименовать класс, новое имя подсвечивается курсорчиком, по которому можно автоматически переименовать так же всюду, где встречалось старое название.


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
MasterOfCode
Дата 28.8.2008, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Точно. Под конец рабочего дня все внимание рассеялось. Спасибо. :(
Но вот хотелось чтоб это все таки было как свойство....


--------------------
user posted image
PM ICQ   Вверх
QryStaL
Дата 28.8.2008, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


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

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



Ну так в чем проблема? Индексатор в интерфейс, свойство возвращает этот интерфейс, и с ним работаешь...


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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