private object StringAdd(CallSite site, object self, string other) { if (self != null && self.GetType() == typeof(string) && other != null) { return(StringOps.Add((string)self, other)); } return(((CallSite <Func <CallSite, object, string, object> >)site).Update(site, self, other)); }