C# 可空整数 - 编译错误
C# Nullable Ints - Compile Error
为什么
int? nullInt = null;
base.Response.Data = (new BusinessLogic.RefDataManager(base.AppSettingsInfo)).SelectAppData(new DC.AppData() { AppDataKey = app_data_key != string.Empty ? app_data_key : null, AppDataTypeId = app_data_type_id != string.Empty ? int.Parse(app_data_type_id) : nullInt });
编译,但是这个
base.Response.Data = (new BusinessLogic.RefDataManager(base.AppSettingsInfo)).SelectAppData(new DC.AppData() { AppDataKey = app_data_key != string.Empty ? app_data_key : null, AppDataTypeId = app_data_type_id != string.Empty ? int.Parse(app_data_type_id) : null});
不会吧?第二条语句的编译错误是 "Type of conditional expression cannot be determined because there is no implicit conversion between 'int' and null"
DC.AppData 是
public class AppData
{
[DataMember(Name = "AppDataKey")]
public string AppDataKey { get; set; }
[DataMember(Name = "AppDataTypeId")]
public int? AppDataTypeId { get; set; }
}
C# 中的三元运算符不相信您将 null
表示为 int?
。您必须明确告诉 C# 编译器您的意思是 null
是 int?
...
base.Response.Data = (new BusinessLogic.RefDataManager(base.AppSettingsInfo)).SelectAppData(new DC.AppData() { AppDataKey = app_data_key != string.Empty ? app_data_key : null, AppDataTypeId = app_data_type_id != string.Empty ? int.Parse(app_data_type_id) : (int?)null});
...或者 int.Parse(app_data_type_id)
是一个 int?
通过铸造它...
(int?)int.Parse(app_data_type_id)
三元 yield 操作数中的任何一个都必须显式转换为 int?
。
问题出在这里:
app_data_type_id != string.Empty ? int.Parse(app_data_type_id) : null
int.Parse returns 不可为空的整数
您需要将其转换为整数吗?
(int?) int.Parse(app_data_type_id) : null
为什么
int? nullInt = null;
base.Response.Data = (new BusinessLogic.RefDataManager(base.AppSettingsInfo)).SelectAppData(new DC.AppData() { AppDataKey = app_data_key != string.Empty ? app_data_key : null, AppDataTypeId = app_data_type_id != string.Empty ? int.Parse(app_data_type_id) : nullInt });
编译,但是这个
base.Response.Data = (new BusinessLogic.RefDataManager(base.AppSettingsInfo)).SelectAppData(new DC.AppData() { AppDataKey = app_data_key != string.Empty ? app_data_key : null, AppDataTypeId = app_data_type_id != string.Empty ? int.Parse(app_data_type_id) : null});
不会吧?第二条语句的编译错误是 "Type of conditional expression cannot be determined because there is no implicit conversion between 'int' and null"
DC.AppData 是
public class AppData
{
[DataMember(Name = "AppDataKey")]
public string AppDataKey { get; set; }
[DataMember(Name = "AppDataTypeId")]
public int? AppDataTypeId { get; set; }
}
C# 中的三元运算符不相信您将 null
表示为 int?
。您必须明确告诉 C# 编译器您的意思是 null
是 int?
...
base.Response.Data = (new BusinessLogic.RefDataManager(base.AppSettingsInfo)).SelectAppData(new DC.AppData() { AppDataKey = app_data_key != string.Empty ? app_data_key : null, AppDataTypeId = app_data_type_id != string.Empty ? int.Parse(app_data_type_id) : (int?)null});
...或者 int.Parse(app_data_type_id)
是一个 int?
通过铸造它...
(int?)int.Parse(app_data_type_id)
三元 yield 操作数中的任何一个都必须显式转换为 int?
。
问题出在这里:
app_data_type_id != string.Empty ? int.Parse(app_data_type_id) : null
int.Parse returns 不可为空的整数
您需要将其转换为整数吗?
(int?) int.Parse(app_data_type_id) : null