I have a dictionary inside a dictionary. I'd like to set a reference to the inner dictionary to a value after I'd added it to the outer dictionary as such:
var mammalIdSubscribers = new Dictionary<int, Dictionary<Guid, int>>();
        
var mammalId = 0;
if (!mammalIdSubscribers.TryGetValue(mammalId, out var mammalSubscribers))
    mammalIdSubscribers[mammalId] = mammalSubscribers; // Add reference to inner dict to outer dict
        
Subscribe(ref mammalSubscribers);
/* 
mammalIdSubscribers[mammalId] is still null after the call 
to Subscribe despite mammalSubscribers being non-null. Why?
*/
        
static void Subscribe(ref Dictionary<Guid, int> subscribers)
{
    subscribers = new Dictionary<Guid, int> { { Guid.NewGuid(), 10 } };
}
Unfortunately, this doesn't work and I'm not sure why (        Console.WriteLine(mammalSubscribers.First().Value); throws a null reference exception).
Can someone please explain why this doesn't work? In other words, why is mammalIdSubscribers[0] still null after the call to Subscribe with the ref keyword?
 
    