The this keyword refers to the current instance of the class. Calling this inside a class means that an object of its class being called. Let’s review a coffe machine example to understand it better:
Coffe class can create some coffe according to inputs from coffe machine.
Please pay your attention how this being used.
Coffe machine has its state (sugar and milk available) and supplies prepared coffe.
Structs may seem similar to classes, but there are important differences that you should be aware of. First of all, classes are reference types and structs are value types. By using structs, you can create objects that behave like the built-in types.
Assignment to a variable of a struct type creates a copy of the value being assigned.
A struct is not permitted to declare a parameterless instance constructor.
A struct is not permitted to declare a destructor.
GUID - a globally unique identifier.
Guid it’s a struct. Theoretically it’s impossible to generate two identical GUIDs in the world.
Please refer the following example on how to generate a GUID value.