internal TBox Get(MethodSearch search) { lock (_dictionaryLock) { var sig = search.ToString(); if (_methodInfoBoxes.ContainsKey(sig)) { return(_methodInfoBoxes[sig]); } return(default(TBox)); } }
internal TBox GetOrAdd(MethodSearch search, Func <TBox> box) { lock (_dictionaryLock) { var sig = search.ToString(); if (_methodInfoBoxes.ContainsKey(sig)) { return(_methodInfoBoxes[sig]); } _methodInfoBoxes.Add(sig, box.Invoke()); return(_methodInfoBoxes[sig]); } }
internal TBox Add(MethodSearch search, TBox box) { lock (_dictionaryLock) { var sig = search.ToString(); if (_methodInfoBoxes.ContainsKey(sig)) { throw new Exception("A Mehod with same Key already exists!"); } else { _methodInfoBoxes.Add(sig, box); } return(_methodInfoBoxes[sig]); } }