when you write the Generic Method the Definition is for keeping the placeholder. Actual Type comes into picture when you call the method. so instead you should write
public T My()
{
throw new NotImplementedException();
}
and when you call the method you can use the string there.