Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Перегрузка члена? Добавлено: 10.02.10 17:06  

Автор вопроса:  VβÐUηìt | Web-сайт: смекаешь.рф
Эм... Попробую расскзать понятней. Есть класс A с свойством Ы {get; set; }. Я наследую от него классы B1, B2, B3 и т.д. и в каждом перегружаю свойство Ы класса A. И вот такая хрень получается:
Как я полагаю,

public bool CheckClass()
{
     B1 q = new B1();
     B1.Ы = this;
     return q.Ы == ((А)q).Ы;
}

Если я не ошибаюсь, свойство Ы перегружено, и эта хрень должна возвращать true. Но нет! Ы при преведении к типу А становится совершенно левым свойством этого-самого класса А, которое нихера не инициализировано. Наследую так:

public class A
{
    public virtual Control Ы {get; set;}
}
public class B1 : A
{
    public Control Ы {get; set;}
}

Что не так? Судя по всему, я эту васю не перегружаю, а заменяю... или... непонятно. И не верю, что в C# нельзя перегружать свойства.

Заранее благодарен.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 10.02.10 23:07
  1.  
  2.     class Program
  3.     {
  4.         class Foo       { public virtual bool IsValid { get { return true; } } }
  5.         class Boo : Foo { public override bool IsValid { get { return false; } } }
  6.  
  7.         static void Main(string[] args)
  8.         {
  9.             Foo f = new Foo();
  10.             Console.WriteLine(f.IsValid);
  11.             Boo b = new Boo();
  12.             Console.WriteLine(b.IsValid);
  13.  
  14.             Foo f1 = b as Foo;
  15.             Console.WriteLine(f1.IsValid);
  16.             Console.ReadLine();
  17.         }
  18.     }
  19.  

Ответить

Номер ответа: 2
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #2
Добавлено: 10.02.10 23:13
override. Точно.

Спасибо большое!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам