Я даже не уверен, как лучше всего сформулировать вопрос, но я посмотрю, что я могу сделать.C# Generics и Type Safety at Runtime
У меня есть цель, но я не знаю, как это сделать, или, если возможно, достичь этого.
Предположим, у меня есть тип Sport
. А затем есть Team<Sport>
и Player<Sport>
. Я хотел бы сделать так, чтобы в любое время, когда у меня есть команда и игрок, взаимодействуя с помощью методов, они могут делать это только в том случае, если у них одинаковый тип <Sport>
.
Например: Team<Sport>.AddPlayer(Player<Sport> player)
< - Как я могу это сделать, так что это можно назвать только тогда, когда оба Sport
s одного типа? Если мне нужно получить новые типы из Sport
, это может сработать, но я надеялся сделать это на основе экземпляра во время выполнения.
Я знаю, что компилятор не будет знать о случаях раньше времени, поэтому я думаю, что мне интересно, есть ли какая-то волшебная магия безопасности, которую вы можете сделать, чтобы сделать это, поэтому мне не нужно сравнивать типы я каждый раз.
О, Дух, я полностью гасятся в этой части - они, конечно, должны быть типы, а не экземпляров. Это действительно имеет смысл, и, я думаю, выполняет то, что я хотел. Благодаря! – twchapman