Please see my comment to the question.
Formally speaking, there are no generic properties; and I don't see how they can make any sense. I'm not sure that you are not confusing two different things, such as generic properties and properties of generic-parameter type. The properties of generic-parameter type makes perfect sense:
class MyClass<T> {
internal T MyProperty { get; set; }
internal static void DoSomething<T2>(T2 myParameter) { }
}
MyClass<string> myInstance = new MyClass<string>();
myInstance.MyProperty = "some string";
myInstance.DoSomething<int>(42);
MyClass<int> myOtherInstance = new MyClass<int>();
myOtherInstance.MyProperty = 13;
Property does not have the same semantics as function, to be generic. Why do you think I made an example generic function static? Yes, it could be an instance function, but what would it do? It would make some sense if it did something to the class instance, but the trouble is: the class instance has no "knowledge" of T2. T and T2 are unrelated.
[EDIT]
Why not generic properties? Because there is noting to do with generic parameters. What is property of type T? This is, essentially, a couple of function, getter returning T, and setter accepting T, plus, for instance properties, "this", a reference to the instance. There is no a room to use any other type.
[END EDIT]
If this explanation does not clear the subject for you, you have to explain your idea behind those non-existing "generic properties".
—SA