質問: dat.Rows[0].Field(0).GetValueOrDefault(); //long? ```
回答: `Code?.Split(',')` のような記法はnullのガードにかかわるもので、Codeの中身がnullならSplitを呼ばず、nullでない場合はSplitを呼ぶというものです。要するに `var CodeList = (Code == null) ? null : Code.Split(',');` のショートハンドです。後の方に出てくる`long?`はnull許容型と呼ばれるもので、long型もしくはnullの両方を許容する型という意味です。 「C# null許容型」で検索してみると色々関連する仕様の解説が読めると思います。