public object SendMessageToObject(IObject self, Interpreter interpreter, string msgname, object[] args) { IMethod mth = this.GetInstanceMethod(msgname); // TODO refactor self == null, it could be all in SendMessageToNilObject if (mth != null) return self.ExecuteMethod(interpreter, mth, args); mth = this.GetInstanceMethod("doesNotUnderstand:with:"); if (mth != null) return self.ExecuteMethod(interpreter, mth, new object[] { msgname, args }); return DotNetObject.SendMessage(interpreter.Machine, self, msgname, args); }