関数が null 許容整数「int?」を返すときに、条件演算子「?:」がここで機能しないのはなぜですか? 「return null」は機能しますが、「?:」ではまず「null」を「(int?)」にキャストする必要があります。
public int? IsLongName(string name) {
int length = name.Length;
// this works without problems
if (name.Length > 10) {
return null;
} else {
return name.Length;
}
// this reports:
// Type of conditional expression cannot be determined because
// there is no implicit conversion between '<null>' and 'int'
return name.Length > 10 ? null : name.Length;
}