How to show a sprite dynamically

I want to load images dynamically and show them to screen.

I could show a image with this code, but I think Cube is far away the best choice to use.

function Start () {
  var go = new GameObject.CreatePrimitive(PrimitiveType.Cube);
  var myTexture : Texture;
  go.renderer.material.mainTexture = Resources.Load("card01", Texture2D);
}

I only need 2D images, according to references and Google search results, it seems to be Sprite and SpriteRenderer are right way to do. So I tried to show a image with Sprite, but I couldn’t figure out how to use there classes. This is what I wrote so far.

function Start () {
  var sprite : Sprite;
  var renderer : SpriteRenderer;
  sprite = Sprite.Create(Resources.Load("card01", Texture2D), Rect(0, 0, 24, 36), Vector2(0,0), 100.0f);
}

How can I show a image in a right way?

I guess the easiest way would be to use the OnGUI() function together with booleans.

var myBool : Bool;
public var myTexture : Texture;

function OnGUI() {
     if (myBool) {
        GUI.DrawTexture(new Rect(x, y, width, height), myTexture);  
     }  
}