Algo así ...
public T fnBuildObj<T>(T sObj, string sQuery, string sText, string sValue) where T : ListControl
{
return sObj;
}
En este caso he limitado el método a los "ListControl" (DropDownList, ListBox y BulletedList lo son por ejemplo), y retorno el objeto tal cual ingresa, así que tu deberías de agregar el resto del código.
Mirando mejor me he dado cuenta de que tu problema es otro y lo había malentendido, entonces mejor así ...
public T fnBuildObj<T>(string sQuery, string sText, string sValue) where T : ListControl
{
T a = Activator.CreateInstance<T>();
return a;
}
Saludos