C#, Unity i porównywanie obiektów w Dictionary.

0

Witam.
Jestem totalnie świeży w świecie programowania i robię pierwszą w życiu apkę w Unity 3d.
Potrzebuję stworzyć Dictionary<string, object> dla dodawania 2 różnych obiektów 2 różnych klas.
Jeśli jest np:
public static class MojeDictionary { public static Dictionary <string, object> listaObiektow = new Dictionary<string, object>(); }
public class a{ }

i

public class b{ }

i potem chcę porównać np:
foreach(var obj in MojeDictionary.listaObiektow){ if(obj.Value.Equals(a)) { //instrukcja... }
Jak tak robię to mi wyskakuje coś w stylu 'Element ,,a" to element ,,typ", który jest nieprawidłowy w podanym kontekście'.
Dodam, że obiekty dodaje się do tego Dictionary z innego skryptu i zapisuje w pliku.
Nie wiem po prostu jak podać instrukcję w if jeśli obiekt jest danego typu. Jeśli by był typu klasy 'b' to chcę zrobić inną instrukcję.
Proszę o wyrozumiałość dla mnie i pomoc.

0

Wydaje mi się, że masz dwie opcje:

var type1 = typeof(obj.Value);
var type2 = typeof(a);
var result = type1.Equals(type2);

//ALBO

var type1 = obj.Value.GetType();
var type2 = a.GetType();
var result = type1.Equals(type2);
2

Ja bym zrobił zwyczajnie

if (obj.Value is a)
0
  1. Próbujesz prawdopodobnie zrobić coś dziwnego / złego. Powiedz, co chcesz osiągnąć?
  2. Porównywanie obiektów to nie jest taką oczywistą sprawą, jaką mogło by się wydawać. No bo co chcesz porównać? Adresy tych obiektów? Ich właściwości? Ich typy? A może coś jeszcze innego?
0

Chcę porównać ich typy w sensie to jakiej są klasy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1