http://www.vmware.com/support/developer/vix-api/ has VIX docs and says it is useful for automation of interactions with ESXI and vCenter
vSphere PowerCLI is a command-line and scripting tool based on PowerShell that provides useful functionality for vSphere management.
Which one is better if they both do the same, especially if I want to use C# ?
I started using vshpere powercli recently and I can tell you it can do everything. It relies on powershell so, if you want to use c# is not the best choice for you. But think whether you really need a multiparadigm programming language like c#.
What do you need to do? Just vmware automation? Forget c#, use powercli + task scheduler and you are done!