81
int value=0;

if (value == 0)
{
    value = null;
}

我怎样才能设置valuenull上面?

任何帮助将不胜感激。

4

7 回答 7

121

在 .Net 中,您不能将null值分配给一个int或任何其他结构。相反,使用Nullable<int>, 或int?简称:

int? value = 0;

if (value == 0)
{
    value = null;
}

延伸阅读

于 2013-10-22T15:34:42.870 回答
111

此外,您不能将“null”用作条件赋值中的值。例如..

bool testvalue = false;
int? myint = (testvalue == true) ? 1234 : null;

失败:Type of conditional expression cannot be determined because there is no implicit conversion between 'int' and '<null>'.

因此,您还必须强制转换 null ......这很有效:

int? myint = (testvalue == true) ? 1234 : (int?)null;

更新(2021 年 10 月):

从 C# 9.0 开始,您可以使用“ Target-Typed ”条件表达式,并且该示例现在可以工作,因为 c# 9 可以通过在编译时评估表达式来预先确定结果类型。

于 2014-09-30T06:11:34.837 回答
15

您不能将 设置intnull。使用可为空的 int ( int?) 代替:

int? value = null;
于 2013-10-22T15:34:44.257 回答
2

int 不允许为空,使用-

int? value = 0  

或使用

Nullable<int> value
于 2016-03-25T05:30:38.697 回答
1
 public static int? Timesaday { get; set; } = null;

或者

 public static Nullable<int> Timesaday { get; set; }

或者

 public static int? Timesaday = null;

或者

 public static int? Timesaday

要不就

 public static int? Timesaday { get; set; } 


    static void Main(string[] args)
    {


    Console.WriteLine(Timesaday == null);

     //you also can check using 
     Console.WriteLine(Timesaday.HasValue);

        Console.ReadKey();
    }

null 关键字是表示空引用的文字,它不引用任何对象。在编程中,可空类型是一些编程语言的类型系统的一个特性,它允许将值设置为特殊值 NULL,而不是数据类型的通常可能值。

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null https://en.wikipedia.org/wiki/Null

于 2018-09-05T05:39:32.150 回答
0

将整数变量声明为可为空,例如:int? variable=0; variable=null;

于 2013-10-22T15:42:20.773 回答
0
int ? index = null;

public int Index
        {
            get
            {
                if (index.HasValue) // Check for value
                    return index.Value; //Return value if index is not "null"
                else return 777; // If value is "null" return 777 or any other value
            }
            set { index = value; }
        }
于 2019-04-24T09:55:54.290 回答