How can I use www and yield in c#?

var url : String;
function Start ()
{
www=new WWW(url);
    audio.clip=www.audioClip;
    yield www;
}

function Update ()
{
    if(!audio.isPlaying && audio.clip.isReadyToPlay)
    audio.Play();
}

How can I change this code to C#?

I don't think the JavaScript you posted would work ... but ... anyways: In C#, I'd probably do it this way:

public String url; 
private WWW www;

public void Start() {
    WWW www = new WWW(url); 
    StartCoroutine(WaitForAudioClip());
}

public IEnumerator WaitForAudioClip() {
    yield return www; 
    audio.clip = www.audioClip; 
}

public void Update() {
    if (audio.clip != null && !audio.isPlaying && audio.clip.isReadyToPlay) 
        audio.Play(); 
}

For a more accurate example in UnityScript, see also Unity Scripting Reference - WWW

For detailed examples of using yield with WWW and WWWForm in C#, see the answer to this question:

How can I send a string or integer value to server side scripts or web services?