Interfaces in C# are built into the language and have a unique name, so a guid is not required. If c# exposes a com interface, then there is a guid.
in c# an interface is abstract type, meaning you can not create an instance of one. A concrete class must implement an interface and a class instance can be cast to any interface it implements.
c# uses a mark and sweep garbage collector instead of reference counts.