using System.Collections.Generic;
public class FrameEvent {
public FrameEvent(string message, Dictionary<string,object> parameters) {
this._parameters = parameters;
public Dictionary<string,Object> _parameters;
public delegate void FrameState(FrameEvent e);
public partial class InterfaceSpec {
public string yell(string msg) {
Dictionary<String,object> parameters = new Dictionary<String,object>();
FrameEvent e = new FrameEvent("whisper",parameters);
return (string) e._return;
private void _sEcho_(FrameEvent e) {
if (e._message.Equals("whisper")) {
e._return = toLowerCase_do(((string) e._parameters["msg"]));
protected virtual string toLowerCase_do(string msg) { throw new NotImplementedException(); }
private delegate void FrameState(FrameEvent e);
private FrameState _state_;
public partial class InterfaceSpecController : InterfaceSpec {
protected override string toLowerCase_do(string msg) {
public static void Main()
var interfaceSpecController = new InterfaceSpecController();
Console.WriteLine(interfaceSpecController.yell("HI"));