Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Наследование и public override string


Автор: cg_ck 22.9.2007, 04:26
Всем привет! Моя первая тема у Вас   smile  Не судите строго  smile 

Условный код:
Код

    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
            mb b = new mb();
            b.Text = "A";
            b.Parent = this;
            b.Show();
       
        }
    }


Что я хочу увидеть?: Хочу увидеть кнопку без текста.
Пишу класс mb:
Код

    class mb : Button
    {
        private String _text;

        public override string Text
        {
            get { return _text; }
            set { this._text = value; }
        }
    }

Что я вижу? Кнопку с текстом.
Тогда пишу так:
Код

    class mb : Button
    {
        private String _text;

        public override string Text
        {
            get {}
            set {}
        }
    }

Вижу нопку без текста.

Я вот понять не могу, если я не пишу base.Text = value; то почему по сути именно это и происходит?

Приходится изголяться так:
Код

    class mb : Button
    {
        private String _text;

        public string Text
        {
            get { return _text; }
            set { this._text = value; }
        }
    }


Но этот вариант мне не нравится. Получается Warning: hides inhirited member.

Кто мне расскажет, почему в первом варианте я вижу текст?


Автор: Alek86 22.9.2007, 09:05
Код

        public override string Text
        {
            get {}
            set {}
        }


ты так не можешь написать
точнее можешь, но не откомпилится

Добавлено через 7 минут и 16 секунд
насчеьт вопроса ничего не понял.

судя по всему, текст, который нужно показать в кнопке берется из свойства Text, которое есть и у Button. Если ты его заместишь (override), то текст будет браться уже из твоего свойства (точнее из того, что укажешь в get этого свойства).

Автор: cg_ck 22.9.2007, 12:51
Да, всё действительно очень просто и логично .)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)