c# question ( transform.position.x = value )

I was wondering why i can’t do this in C#

transform.position.z = 2 ;

It seems i always have to go via a vector3 to do something like:

myvector3.z = 2 ;
transform.position = myvector3 ;

Is it normal ?
Thank you
Patricia.

http://forum.unity3d.com/viewtopic.php?t=6900&highlight=properties