以下を考えると:
[<DataContract>]
type TweetUser = {
[<field:DataMember(Name="followers_count")>] Followers:int
[<field:DataMember(Name="screen_name")>] Name:string
[<field:DataMember(Name="id_str")>] Id:int
[<field:DataMember(Name="location")>] Location:string}
[<DataContract>]
type Tweet = {
[<field:DataMember(Name="id_str")>] Id:string
[<field:DataMember(Name="text")>] Text:string
[<field:DataMember(Name="retweeted")>] IsRetweeted:bool
[<field:DataMember(Name="created_at")>] DateStr:string
[<field:DataMember(Name="user", IsRequired=false)>] User:TweetUser
[<field:DataMember(Name="sender", IsRequired=false)>] Sender:TweetUser
[<field:DataMember(Name="source")>] Source:string}
で逆シリアル化するDataContractJsonSerializer(typeof<Tweet[]>)
と、 User フィールドまたは Sender フィールドのいずれかが null になります (少なくとも、デバッガーが私に伝えていることです)。
私が次のように書こうとすると:
let name = if tweet.User <> null
then tweet.User.Name
else tweet.Sender.Name
コンパイラは次のエラーを出力します:「型 'TweetUser' には適切な値として 'null' がありません」
この場合、null 値をテストするにはどうすればよいですか?