Is it possible to do the following (If so I can\'t seem to get it working.. forgoing constraints for the moment)...
If the type (because it\'s ommitted) is inferred,
No, it's not possible. Generic types must be known at compile time.
Think about it for a minute, how could compiler know that it is guaranteed that the type T has SpreadsheetLineNumbers property? What if T is primitive type such as int or object ?
What prevents us from calling method with ref _, 999 parameters (T is int here) ?
It'd only work if we add an interface that contains this property :
public interface MyInterface
{
string SpreadsheetLineNumbers { get; set; }
}
And let your class inherit from this interface
public class MyClass : MyInterface
{
public string SpreadsheetLineNumbers { get; set; }
}
Then we could use generic type constraints to let compiler know that the type T derives from this interface and therefore it has to contain and implement all its members:
private void GetGenericTableContent(ref StringBuilder outputTableContent, T item)
where T : IMyInterface // now compiler knows that T type has implemented all members of the interface
{
outputTableContent.Append("" + item.SpreadsheetLineNumbers + " ");
}