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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2011, 15:23   #1
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию абстрактные св-ва, как сделать?

Код:
namespace phLibrary
{
    abstract class Stream 
    {
        public abstract byte[] Read(uint c);
        public abstract uint Write(byte[]data);
        public long Position
        {
            abstract get;
            abstract set;
        }
    }
}
в общем как обьявить св-во абстракным?(точнее его сет/гет методы естественно)
или же делать переходник к внешним абстракным методам?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.02.2011, 15:35   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://msdn.microsoft.com/ru-ru/library/yd3z1377.aspx
разобрался.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.02.2011, 19:27   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
        public virtual long Size
        {
        	get
        	{
        	    long t=Seek(smFromCurrent,0);
        	    long r=Seek(smFromEnd,0);
        	    Seek(r,smFromBegin,t);
        	    return r;
        	}
        	set;
        }
все же остался вопрос.
как обьявить св-во и пометить что get-метод у меня реализован.
а set пометить как абстрактный?(данный код не компилируется так как set виртуальный, но не реализован)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.02.2011, 19:36   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

короче решил сделать тупо в лоб, благо мне так даже больше подходит.
Код:
        public virtual long Size
        {
        	get
        	{
        	    long t=Seek(smFromCurrent,0);
        	    long r=Seek(smFromEnd,0);
        	    Seek(r,smFromBegin,t);
        	    return r;
        	}
        	set{}
        }
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.02.2011, 19:47   #5
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

Еще можно встать на уши и написать так:
Код:
       abstract class MyClass
       {
           protected int size;
            public int Size
            {
                get { return size; }
                set { SetSize(value); }
            }

            protected abstract void SetSize(int value);
        }

        class MyClassImpl : MyClass
        {
            protected override void SetSize(int value)
            {                
                base.size = 100 + value;
            }
        }
Будет самое настоящее абстрактное свойство )
m0nax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хочу сделать форму для ввода паролей! Для этого текст должен быть зашифрован в (*****) ! Как сделать vitaaly Visual C++ 2 12.02.2011 12:29
С++ Абстрактные классы Jane-sad Помощь студентам 2 14.10.2010 14:19
Абстрактные классы. Опытным взглядом на 1 минуту работы Metal_666_ Общие вопросы C/C++ 5 15.02.2010 12:28
Как такое сделать (извените. но даже не знаю как это называется) Van'Denis HTML и CSS 3 30.08.2009 10:46
[C] Абстрактные типы данных. Реализация дерева общего вида. Dju Помощь студентам 0 11.05.2009 18:11