Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在执行任何操作之前,检查var da/dtCounts是否已分配_C# - Fatal编程技术网

C# 在执行任何操作之前,检查var da/dtCounts是否已分配

C# 在执行任何操作之前,检查var da/dtCounts是否已分配,c#,C#,在将da和dtCounts分配给新对象之前,如何检查其是否为null var da = new MySqlDataAdapter(cmd); var dtCounts = new DataTable(); da.Fill(dtCounts); 在此场景中不能使用var。这里有一个简单的例子 MySqlDataAdapter da; DataTable dtCounts; // Other code here... if (da == null

在将
da
dtCounts
分配给新对象之前,如何检查其是否为null

        var da = new MySqlDataAdapter(cmd);
        var dtCounts = new DataTable();
        da.Fill(dtCounts);

在此场景中不能使用
var
。这里有一个简单的例子

MySqlDataAdapter da;
DataTable dtCounts;

// Other code here...

if (da == null)
    da = new MySqlDataAdapter(cmd);

if (dtCounts == null)
    dtCounts = new DataTable();

da.Fill(dtCounts);

另一种方法是使用C#Null合并运算符?? 如果操作数不为空,则返回左侧操作数;否则,它将返回右侧操作数。 因此,您的代码可以如下所示:

MySqlDataAdapter da;
DataTable dtCounts;

// Other code here...

da = da ?? new MySqlDataAdapter(cmd);
dtCounts = dtCounts ?? new DateTable();

da.Fill(dtCounts);

da
如果您构造它,它将不会为空。。。与
dtCounts
相同。@grmbl-你的意思是什么?忽略我上面的评论。你可以检查da.Fill(dtCounts)的返回值,因为它返回的是int.mable的重复值