я могу иметь абстрактный базовый класс с общим атрибутом ключа - PullRequest
0 голосов
/ 11 мая 2010

Я хочу создать повторно используемую библиотеку. Я собирался использовать методы расширения, однако в некоторых случаях я сталкиваюсь с некоторыми проблемами, когда клиент должен указать в вызывающем методе типы.

ВОПРОС - Если я использую абстрактный базовый класс в качестве основы, могу ли я указать атрибут / свойство в классе как универсальный (например, свойство ключа может иметь значение int в одном случае или строку другой)?

Ответы [ 2 ]

3 голосов
/ 11 мая 2010

Да.

public abstract class MyBase<T>
{
    public abstract T GetSomething();
}

public class MyConcreteType : MyBase<int>
{
    public override int GetSomething()
    {
         return 3;
    }
}

Или, что именно вы имеете в виду?
(Если бы вы попробовали это, вы бы получили ответ быстрее, чем опубликовать его на SO, я думаю ...)

1 голос
/ 11 мая 2010

Да, вы можете сделать следующее:

public abstract class Class<T> 
{
    T value;
    T Prop { get; set;} 
}
...