I would not say that it is useless. Let's look at an example below on how to maintain free syntax. In cases when you create some base implementation in Parent and want to provide free declarations ... you can use this restriction in this way
public class Parent<TChild> where TChild : Parent<TChild> { public string Code { get; protected set; } public TChild SetCode(string code) { Code = code; return this as TChild;
Please take this just an example of how this restriction can be used.
Radim KΓΆhler
source share