All pastes #2073056 Raw Edit

Someone

public text v1 · immutable
#2073056 ·published 2011-06-01 02:40 UTC
rendered paste body
//Both people are represented by an abstract class
public abstract class Person
{
  public bool StrangersToLove { get; set; }
  public bool KnowTheRules { get; set; }
}

//Rick Astley's possible thoughts
public enum Thought
{
  FullCommitment
}

//Rick class 
public sealed class Me : Person
{
  public Thought Thinking()
  {
    return Thought.FullCommitment;
  }
}

//The target of Rick's song, notice that GetThought() can only be called by passing in an instance of Rick
//which satisfies that she can't get this from any other guy
public class You : Person
{
  private Thought whatHeIsThinking;
  public void GetThought(Me guy)
  {
   whatHeIsThinking = guy.Thinking();
  }
}

class Program
{
  //The first verse
  static void Main(string[] args)
  {

    var Rick = new Me() { KnowTheRules = true, StrangersToLove = false };

    var Girl = new You() { KnowTheRules = true, StrangersToLove = false };

   Girl.GetThought(Rick); 
  }
}