我編寫需要查詢多個數據庫的應用程序,所以要規範我的連接字符串,我寫了下面的枚舉和方法:(C#)枚舉不會返回INT
class Program
{
enum DBEnum { DB1, DB2, DB3, DB4, DB5 }
static void Main(string[] args)
{
using (CacheConnection myConnection = new CacheConnection())
{
myConnection.ConnectionTimeout = 9999;
myConnection.ConnectionString = DBSelect(DBEnum.DB1);
myConnection.Open();
}
}
public static string DBSelect(int i)
{
string connectionString = "";
switch (i)
{
case 0:
connectionString = *connection string*;
break;
case 1:
connectionString = *connection string*;
break;
case 2:
connectionString = *connection string*;
break;
case 3:
connectionString = *connection string*;
break;
case 4:
connectionString = *connection string*;
break;
default:
break;
}
return connectionString;
}
}
但問題是它不會爲枚舉定義分配一個數值。
根據MSDN,除非枚舉澆鑄到一個不同的數據類型,或定義特別定義,這些定義應該有一個int值從0開始
然而智能感知抱怨對我來說,行:
myConnection.ConnectionString = DBSelect(DBEnum.DB1);
有無效的參數,如果我這樣說
int i = DBEnum.DB1;
它問我,如果我錯過了一個演員。
謝謝!
你爲什麼不改變方法取一個'DBEnum'而不是'int'? – juharr
@juharr因爲我是noob。謝謝你的建議! –
[爲什麼枚舉需要顯式轉換爲int類型?](http://stackoverflow.com/questions/4728295/why-enums-require-an-explicit-cast-to-int-type) –