No overload for method "Destroy" takes 2 arguments?

Here’s my script:

using UnityEngine;
using System.Collections;

public class ItemPickup : MonoBehaviour {

public AudioClip pickupSound;

// Use this for initialization
void Start () {
	StartCoroutine (DespawnTimer ());
}

// Update is called once per frame
void Update () {

}

void OnTriggerEnter(Collider other)
{
	if(other.tag == "Player")
	{
		if(gameObject.tag == "Item")
		{
			Inventory inventory = GameObject.Find("Inventory").GetComponent<Inventory>();

			if(this.gameObject.name.Equals("Wood"))
			{
				audio.PlayOneShot(pickupSound);	
				Network.Destroy(gameObject,pickupSound.length);
				inventory.AddItem("Wood");
			
			}
		}
	}
}

IEnumerator DespawnTimer()
{
	yield return new WaitForSeconds (120);
	Destroy (gameObject);
}

}

If i delete network from network.destroy the error gone but i need network.destroy but cannot figure out what is wrong with this script ://

There isn’t a Network.Destroy that takes two parameters/arguments. It takes one for both exposed methods. This is clearly detailed in the documentation.

public static void Destroy(NetworkViewID viewID)

or

public static void Destroy(GameObject gameObject)

You’re trying to apply some destroy in N amount of time. Network.Destroy isn’t like Object.Destroy which does allow you to do that.

So in the end the error is completely correct.