如何判断一个int类型的变量是否赋值?

时间:2022-07-10 17:00:57
一个类ABC具有Int类型的属性Count,如何检查这个属性是否赋值?

13 个解决方案

#1


if(Count==null)

#2


 class Program
    {
        class a
        {
            int count;
            public a()
            {

            }
        }
        static void Main(string[] args)
        {
            a m = new a();
            
        }

你调试一下就知道,就算你不赋值,它也会默认成0
要你你赋值就是0,怎么判断??等高手

#3


增加一个bool变量
private int count;
public bool bl=false;
public int Count
{
get
{
return count;
};
set
{
count=value;
bl=true;
}
}

#4


将INT改为string类型..判断ABC是否为null....用时再Convert为INT类型.

#5


不能!

能判断的那个类型在 c# 上写作
int?
类型。

#6


属性 Count 一般用于集合性质的类

当 Count==0 时,说明这个集合还没有填充元素.
当 Count>0 时,说明这个集合已经加过元素了.

#7


定义时给初值 如 int.MinValue 或int.MaxValue 再判断

#8


使用非空类型Nullable
int? i;
int i;默认值就是0

#9


引用 8 楼 wuyq11 的回复:
使用非空类型Nullable
int? i;
int i;默认值就是0

嗯,学习,应该用可空类型

#10


无法判断的。
应为它本身就是值的,
而你却要判断是否有值。
这不是矛盾吗?

#11


使用 int? 即可,它可以为 null

#12


引用 11 楼 hikaliv 的回复:
使用 int? 即可,它可以为 null


其实 int? 是一个

Nullable <int > 类型的 alias

#13


类中的Int32(Int16)字段如果没有显示在构造函数中初始化,那么编译器会保障将其初始化为0,这是CLR兼容编译器的默认行为,然而,C#编译器会确保在首次使用该类型的字段时,由程序员显示初始化过,否则不会编译通过的。

如果你想判断的话,应该使用int?可空类型

#1


if(Count==null)

#2


 class Program
    {
        class a
        {
            int count;
            public a()
            {

            }
        }
        static void Main(string[] args)
        {
            a m = new a();
            
        }

你调试一下就知道,就算你不赋值,它也会默认成0
要你你赋值就是0,怎么判断??等高手

#3


增加一个bool变量
private int count;
public bool bl=false;
public int Count
{
get
{
return count;
};
set
{
count=value;
bl=true;
}
}

#4


将INT改为string类型..判断ABC是否为null....用时再Convert为INT类型.

#5


不能!

能判断的那个类型在 c# 上写作
int?
类型。

#6


属性 Count 一般用于集合性质的类

当 Count==0 时,说明这个集合还没有填充元素.
当 Count>0 时,说明这个集合已经加过元素了.

#7


定义时给初值 如 int.MinValue 或int.MaxValue 再判断

#8


使用非空类型Nullable
int? i;
int i;默认值就是0

#9


引用 8 楼 wuyq11 的回复:
使用非空类型Nullable
int? i;
int i;默认值就是0

嗯,学习,应该用可空类型

#10


无法判断的。
应为它本身就是值的,
而你却要判断是否有值。
这不是矛盾吗?

#11


使用 int? 即可,它可以为 null

#12


引用 11 楼 hikaliv 的回复:
使用 int? 即可,它可以为 null


其实 int? 是一个

Nullable <int > 类型的 alias

#13


类中的Int32(Int16)字段如果没有显示在构造函数中初始化,那么编译器会保障将其初始化为0,这是CLR兼容编译器的默认行为,然而,C#编译器会确保在首次使用该类型的字段时,由程序员显示初始化过,否则不会编译通过的。

如果你想判断的话,应该使用int?可空类型