c#里面的两种类型转换有什么区别?

我看到有两种,一种是(int),一种是To什么(),第一种是只有int可以这样,还是可以(double)(bool)之类的?还有两种类型转换有什么区别?

i = (int)d;
i.ToString();