According to the docs you can constrain TT to be a value type using the where keyword
where T: struct Class declaration would then look like sothis:
class Something<T> where T: struct { ... } Though stringstring is not a value type and you won't be able to use it with such a constraint. Maybe IComparable would be better in case you want to also use the string type.
As for specifying the default type, I don't believe it is possible.