Dot is not an operator.
Well, dot is a lexical element used, among other things, to qualify a member of a type with a reference of an instance which is used as a "this" parameter for instance (non-static) methods or properties or as a class name in case of static members. As in a body of an instance (non-static) method "this" is assumed, "this." can be omitted, which gives you a call or an access to a member without dot. For static members, a declaring class is assumed, so class name with a dot could be used.
That is:
class MyClass {
void InstanceMethod() {
a = 1;
this.b = 2;
MethodA();
this.MethodB();
c = 3;
MyClass.d = 4;
MethodC();
MyClass.MethodD();
}
static void StaticMethod() {
);
this.MethodB();
*/
c = 3;
MyClass.d = 4;
MethodC();
MyClass.MethodD();
}
int a, b;
void MethodA() {}
void MethodB() {}
static int c, d;
static void MethodC() {}
static void MethodD() {}
}
See also my past answer:
What makes static methods accessible?[
^].
—SA