首页 新闻 会员 周边 捐助

如何判断一个对象的属性是否赋值

0
悬赏园豆:5 [已关闭问题]

 

对象的属性是bool类型的。。。。有不能判断它是否为空!!!

如何是好啊。。。

 

请各位大侠帮帮。, 每次需要根据对象的属性来写 SQL语句 。。。。。

if (model.IsTop != null)
   {
    strSql.Append("IsTop="+ (model.IsTop? 1 : 0) +",");
   }

王大湿的主页 王大湿 | 菜鸟二级 | 园豆:457
提问于:2010-06-24 10:00
< >
分享
其他回答(8)
0

你直接给这个属性赋初始值为false  有值的时候就赋值为true 那就好判断了啊

Jerry.Duan | 园豆:220 (菜鸟二级) | 2010-06-24 10:03
0

在.NET中,布尔类型是值类型,所以model.IsTop != null永远为真。bool默认为false。

既然这个属性要有三个值的责任,或许不用bool为妙。

现在这样的情景,要么舍弃一个值充当是否是否赋值,要么就只能换类型了。

WildWeeds | 园豆:285 (菜鸟二级) | 2010-06-24 10:21
0

用bool?类型吧,可为null

Gray Zhang | 园豆:17610 (专家六级) | 2010-06-24 10:21
0

对象的属性在没有赋值的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

Paabo | 园豆:157 (初学一级) | 2010-06-24 10:23
0

设置默认值不就解决了吗

Astar | 园豆:40805 (高人七级) | 2010-06-24 14:18
0

你可以转换类型啊

string.IsNullorEmpty(model.IsTop.ToString())

茂茂 | 园豆:2902 (老鸟四级) | 2010-06-24 14:51
0

是bool?的就可以

顺便你还可以去看看??运算符

熊猫疯狂者 | 园豆:280 (菜鸟二级) | 2010-06-24 15:46
0

楼主可以看一下.Net中的Nullable类,这个类可以让值类型可以为null,比如你的属性IsTop,可以定义为

bool? IsTop{get;set;}

 

这个时候如果IsTop没有赋过值,那IsTop == null就是成立的了.

I,Robot | 园豆:9783 (大侠五级) | 2010-06-24 16:02
0

 bool? IsTop = null;

        if (IsTop.HasValue)
        {

          strSql.Append("IsTop="+ (model.IsTop? 1 : 0) +",");
        }

leon382 | 园豆:226 (菜鸟二级) | 2010-06-28 14:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册