I think you can check if value has been assigned to the string but it is not logic to check if a string has already been read, code in VB.Net and you may convert to C# if it is OK with you
code should looks
Private IsValueAssigned As Boolean
Public ReadOnly Property IsHaveValue As Boolean
Get
Return IsValueAssigned
End Get
End Property
Private stringValue As String
Public Property ValueString As String
Get
Return stringValue
End Get
Set(value As String)
stringValue = value
IsValueAssigned = True
End Set
End Property