你直接给这个属性赋初始值为false 有值的时候就赋值为true 那就好判断了啊
在.NET中,布尔类型是值类型,所以model.IsTop != null永远为真。bool默认为false。
既然这个属性要有三个值的责任,或许不用bool为妙。
现在这样的情景,要么舍弃一个值充当是否是否赋值,要么就只能换类型了。
用bool?类型吧,可为null
对象的属性在没有赋值的bool 属性 初始值为false 且属性永远不会为空,
除非将属性声明为 bool? 可空类型!
因为在 bool 对象 声明是是不能赋值为空值的
比如:
public class Example
{
public bool IsTop { get; set; }
}
class Program
{
static void Main(string[] args)
{
Example e = new Example();
System.Console.WriteLine(e.IsTop);
}
}
输出结果为:False
设置默认值不就解决了吗
你可以转换类型啊
string.IsNullorEmpty(model.IsTop.ToString())
是bool?的就可以
顺便你还可以去看看??运算符
楼主可以看一下.Net中的Nullable类,这个类可以让值类型可以为null,比如你的属性IsTop,可以定义为
bool? IsTop{get;set;}
这个时候如果IsTop没有赋过值,那IsTop == null就是成立的了.
bool? IsTop = null;
if (IsTop.HasValue)
{
strSql.Append("IsTop="+ (model.IsTop? 1 : 0) +",");
}