var account = new TRANSPORT_TO_ACCOUNT
{
TransportLayerId = reader["ID"] as string,
...
BLOCKED = reader["BLOCKED"] as bool,
};
accounts.Add(account);
Run Code Online (Sandbox Code Playgroud)
我有这个代码的问题.
as运算符必须与引用类型或可空类型一起使用('bool'是不可为空的值类型)
BLOCKED在这种情况下我应该如何正确宣布?
如果您确定该属性是a bool,那么只需将其强制转换:
var account = new TRANSPORT_TO_ACCOUNT
{ TransportLayerId = (string)reader["ID"]
, BLOCKED = (bool)reader["BLOCKED"]
};
accounts.Add(account);
Run Code Online (Sandbox Code Playgroud)
或者,如果您不确定是否有值:
, BLOCKED = (bool?)reader["BLOCKED"]
Run Code Online (Sandbox Code Playgroud)
或者如果你甚至不确定它是(可空的)布尔字段:
, BLOCKED = reader["BLOCKED"] as bool?
Run Code Online (Sandbox Code Playgroud)
如果读者是一个DbDataReader,你可以使用GetBoolean,正如Rene Vogt建议的那样.
作为旁注:您应该遵循命名约定.属性和类应该是驼峰的情况,所以它将是Blocked和TransportToAccount.