Я пытаюсь реализовать некоторые более сложные структуры данных в c#, работая без библиотек, кроме System. В настоящее время я работаю над графиками.
Я уже создал 3 класса для представления узлов, направленных ребер и неориентированных ребер. Каждый из них может иметь свой тип данных, например node<string>
будет узлом с информацией, хранящейся в виде строки, а directedEdge<string>
будет связывать узлы, в которых хранятся строки.
Мой класс графа объявлен как Graph<dataType, edgeType>
( на данный момент я предполагаю, что все ребра в одном графе одного типа), и я хотел бы выполнить ветвление внутри этого класса в зависимости от того, используется ли направленное или неориентированное ребро. Приведенный ниже код не работает, но объясняет функциональность, которую я хотел бы достичь.
if (edgeType == directedEdge<dataType>)
{
}
else if (edgeType == undirectedEdge<dataType>)
{
}
else
{
}
Есть ли способ реализовать нечто подобное тому, что показано выше? Если да, то как?