There is not concept of "dynamic" property as opposed to static property. The question "what's the difference between {0} and {1} is invalid in principle. "What's the difference between apple and Apple".
Methods, properties and fields can be
static and
instance. Static ones have no access to the instance of a type, so they are created per class in a given Application Domain. Technically the difference is access to "this", a reference to the instance.
Let's start from methods:
class MyClass {
internal static void StaticMethod(int parameter) {}
internal void InstanceMethod(int parameter) { A = parameter; this.B = parameter; }
int A, B;
}
MyClass.StaticMethod(3);
MyClass myInstance = new MyClass();
myInstance.InstanceMethod(3);
Now, properties are essentially special methods for reading and setting property "value" (getter/setter). When a property is static, it can access only static members; but instance property can also access instance members:
class MyClass {
internal static int StaticProperty { get { return A; } set { A = value; } }
internal int InstanceProperty { get { return B; } set { B = value; } }
static int A;
int B;
}
MyClass.StaticProperty = 3;
MyClass myInstance = new MyClass();
myInstance.InstanceProperty = 4;
Of course, property does not have to return and assign a value; they can do any calculations, have any side effects, etc. Side effects is actually a main purpose of the property: allow a side effect behind the assign-like interface (get or set).
Is is clear now?
—SA