0
首先抱歉混淆的標題,我可以找到確切的話來描述的情況。但它很容易通過一個例子來理解。如何「擴展」一個類,使其變量可以返回一個前綴的值爲
我們必須保存表名作爲目錄這樣的靜態類:
public static class Tables
{
public const string Employees= "DBEmploy1";
public const string Sales = "Sale1";
(...etc)
}
而在我們的代碼中使用它們像這樣:
string sql="select name, surname from " + Tables.Employees + " where code='1'"
但有時我們需要的前綴數據庫連接或其他前綴/後綴到表中。目前的解決辦法是宣佈第二表目錄:
public static class CurrentDB1Prefix="[databasex].dbo."
public static class Tables
{
public const string Employees= "DBEmploy1";
public const string Sales = "Sale1";
(...etc)
}
public static class TablesP
{
public static readonly string Employees= CurrentDB1Prefix + Employees;
public static readonly string Sales = CurrentDB1Prefix + Sales;
(...etc)
}
而且在我們的代碼使用它們,如:
string sql="select name, surname from " + TablesP.Employees + " where code='1'"
省力保持2表列表,我們願做這樣的事情:
public static class CurrentDB1Prefix="[databasex].dbo."
public static class Tables
{
public const string Employees= "DBEmploy1";
public const string Sales = "Sale1";
(...etc)
}
public static class TablesP
{
//this would return the above Table class variables with the prefixes somehow
return CurrentDB1Prefix + Table.TableVariablex;
}
這怎麼辦?或者可以使用一些近似值?
重要的是,我們希望有2個選項,表得到沒有前綴和TablesP表名與前綴(僅在第一個做mainteinance) – VSP
@讓他們ase69s什麼阻止你這樣做?創建第二個類TablesP,或者創建採用'bool applyPrefix'參數的屬性方法。 – usr
作爲semiconstant(當前前綴只在程序啓動時分配,並且以後沒有更改)的東西,我想使用最輕量級的選項(如const),因此它不必在每次訪問第二個類時計算它,而且我要確保第一個類中的每個變量都有第二個類中的對應元素(例如,如果您不使用其子元素,則使用抽象或接口來警告您) – VSP