Because you can’t call a static constructor directly, you can’t include an access modifier (e.g. public, private) when defining a static constructor. Static constructors are defined without access modifiers.

static Dog()
{
Motto = "We serve humans. And lick ourselves.";
}

The compiler will generate an error if you try to include an access modifier.

Class members marked with the accessibility keyword protected internal are accessible from within the same class, from within code in classes that derive from the class, or from within code in classes within the same assembly.

In the picture below, the Dog.DoBark method is marked as protected internal. The code in any of the blue blocks can call this method.