vector 3 to unity.transform

using UnityEngine;
using System.Collections;

public class PatrolUpstairs : MonoBehaviour {

public Transform[] points;
private int destPoint = 1;
private UnityEngine.AI.NavMeshAgent agent;
public float range = 10f;
public float stop = 2f;
public float move_speed = 3f;
public float turn_speed = 4f;
public Transform player;
Transform myTransform;

void Start () {
	player = GameObject.FindWithTag ("Player").transform;
	agent = GetComponent<UnityEngine.AI.NavMeshAgent>();
	myTransform = transform;

	// Disabling auto-braking allows for continuous movement
	// between points (ie, the agent doesn't slow down as it
	// approaches a destination point).
	agent.autoBraking = false;

	GotoNextPoint();
}

void GotoNextPoint() {
	// Returns if no points have been set up
	if (points.Length == 0)
		return;

	// Set the agent to go to the currently selected destination.
	agent.destination = points[destPoint].position;

	// Choose the next point in the array as the destination,
	// cycling to the start if necessary.
	destPoint = (destPoint + Random.Range(1,(10))) % points.Length;
}

void Update () {
	// Choose the next destination point when the agent gets
	// close to the current one.
	float distance = (myTransform.position - player.position).magnitude ;
	if (distance <= range)
		myTransform.rotation = Quaternion.Slerp (myTransform.rotation,
			Quaternion.LookRotation (player.position - myTransform.position), turn_speed * Time.deltaTime);
	if (distance > stop)
		agent.destination = player;

	if (agent.remainingDistance < 1f)
		GotoNextPoint();
}

}

My error is:
Cannot implicitly convert type UnityEngine.Transform' to UnityEngine.Vector3’

How can I measure the distance between two gameobjects without using vector 3?

Because the transform is more than just a position. It’s a Transform object, not a Vector3 object.

What you want instead is transform.position, which is a Vector3.