2012-03-13 5 views
1

Я должен попытаться создать класс для работы с загрузкой в ​​ресурсы (текстуры, звуки и т. Д.). Я пытаюсь создать его так, что я могу сделать что-то похожее на следующее:C# с использованием индексаторов с шаблонами

ContentHandler contentHandler=new ContentHandler(content); 
Texture2D texture=contentHandler<Texture2D>["picture"]; 

Проблема, которую я имею, что в то время как я могу создать шаговые просто отлично, я не знаю, как использовать шаблоны с это так, что я могу получить определенный тип, переданный ему. Я мог бы просто использовать регулярную функцию шаблона, но я бы скорее использовал выше, если это возможно. Я пробовал искать, но мне сложно придумать что-нибудь.

+1

Пожалуйста ... не шаблон, его родовое. –

+0

Извините, Феликс, используемый для C++ – mirhagk

ответ

3

Я подозреваю, что ваш вопрос действительно:

Могу ли я написать общий индексатор?

Если это так, ответ отрицательный. Вы должны были бы написать метод вместо:

Texture2D texture = contentHandler.GetValue<Texture2D>("picture"); 

Также отметим, что дженерики не шаблоны. Стоит быть очень ясным на этом :)

+0

Конечно, генераторные индексы будут сумасшедшими. Представьте себе, что вы можете с ними сделать (даже общие свойства). –

+0

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

1

Я думаю, что вы ищете Generics.

Возможный дубликат: Why it is not possible to define generic indexers in .NET?

+0

Да, это то, что я ищу для использования с свойством indexer. Сам класс не может быть общим, потому что это синглтон. Я не хочу 40 различных классов для 40 различных видов ресурсов. Я хотел бы сделать метод общим, но я не могу понять, как создать общий индекс (извините за вызов его шаблонов, я сначала изучил C++) – mirhagk

+0

Как уже упоминал Джон Скит, вы можете создать общий метод. http://msdn.microsoft.com/en-us/library/twcad0zb(v=vs.80).aspx – Robar

Смежные вопросы