上次我有一个类似的问题,但我们想出如果在逻辑语句之前初始化并为变量设置一个值,那么我可以使用逻辑语句中生成的值。
这一次,我想调用两个方法重载中的一个,具体取决于连接字符串是否为空。像这样。
if (ConnectionString != "") // if there is something in the config file work with it
{
SqlConnection dataConnection = new SqlConnection(ConnectionString);
}
else
{
SqlConnection dataConnection = new SqlConnection();
}
try {
// ...
问题是try块中的任何内容都会失败,因为它不知道dataConnection。
如何才能使其成功?
答案 0 :(得分:6)
你可以这样做:
SqlConnection dataConnection = !string.IsNullOrEmpty(ConnectionString)
? new SqlConnection(ConnectionString) : new SqlConnection();
或者:
SqlConnection dataConnection;
if (string.IsNullOrEmpty(ConnectionString))
{
dataConnection = new SqlConnection(ConnectionString);
}
else
{
dataConnection = new SqlConnection();
}
答案 1 :(得分:3)
在外面声明它(未初始化):
SqlConnection conn;
if(string.IsNullOrEmpty(connectionString)) {
conn = new SqlConnection();
} else {
conn = new SqlConnection(connectionString);
}
如果逻辑很简单,也可以使用条件:
SqlConnection conn = string.IsNullOrEmpty(connectionString)
? new SqlConnection() : new SqlConnection(connectionString);
后者使用using
块更容易使用,因为它可以内联完成。
答案 2 :(得分:1)
你必须在if块之外有变量:
SqlConnection dataConnection;
if (ConnectionString != "") // if there is something in the config file work with it
{
dataConnection = new SqlConnection(ConnectionString);
}
else
{
dataConnection = new SqlConnection();
}
答案 3 :(得分:1)
我认为你应该在if语句之前定义连接
SqlConnection dataConnection = null;
if (ConnectionString != "") // if there is something in the config file work with it
{
dataConnection = new SqlConnection(ConnectionString);
}
else
{
dataConnection = new SqlConnection();
}
try
{
答案 4 :(得分:1)
您可以在if语句旁边声明带有null值的变量 然后在if语句中使用它 当你需要使用它时,检查它是否为空
SqlConnection dataConnection = null;
if (ConnectionString != "") // if there is something in the config file work with it
{
dataConnection = new SqlConnection(ConnectionString);
}
else
{
dataConnection = new SqlConnection();
}
try
{
if(dataConnection != null)
DoWhatYouWant();
}