What am I missing?

using UnityEngine;
using System.Collections;

public class UI : MonoBehaviour
{

	Transform thisTransform;

	void Start () 
	{
		thisTransform = GetComponent(Transform);
	}
} //c# code

I normally code in C++ but there should be too much difference. I have read and re-read the documentation especially this: http://docs.unity3d.com/Documentation/ScriptReference/index.Accessing_Other_Components.html but this code still doesn’t work reporting the following compilation error: UnityEngine.Transform is a type but is used like a variable. Am I missing something, GetComponent should accept a type so I don’t understand why me passing a Type can cause the error. GetComponent should also return the game objects transform variable for me to have reference to. (PS I know I could just write transform.whatever but I am just trying to highlight my problem)

If you want to access the transform of the game object that your script is attached to, you can use Monobehaviour’s convenience member transform.

If you have a reference to another game object (for example through a public property), you can access it’s transform in much the same way (otherGameObject.transform).

If you want to get access to another component that is attached to your game object but does not have a convenience member (eg: your own custom script), the code should look like this:

MyScript referenceToTheScript = gameObject.GetComponent<MyScript>();

This should also work for Transform, but is a lot of extra work.

you are deriving/extending/inheriting from monobehavior, the property transform is part of that, if you are referring to the transform the script is attached to.

using UnityEngine;
using System.Collections;

public class UI : MonoBehaviour
{

    Transform thisTransform;

    void Start () 
    {
       thisTransform = this.transform;
// or
       thisTransform = transform;
// or
// throughout your script, just use transform, unless you have a property called that, then it would hide the derived property.
    }
} //c# code