我有一個接口IDatabase,它以幾種不同的方式訪問數據庫。例如使用RESTful或MySqlDirectConnect。在C中使用泛型變量的可能性#
接下來我有一個類foo有成員變量A,B,C需要從數據庫中拉出數據。
public class foo
{
private string a;
private int b;
private int c;
}
本來,我打算創建爲每一個成員變量get方法。使用泛型,您可以指定要使用的接口。
public string GetA<T>() where T: IDatabase
{
//example might be GetA<RESTful>();
}
public int GetB<T>() where T: IDatabase
{
//example might be GetB<MySQL>();
}
等等....
問題,我看到的是,如果對數據庫的修改我要回去和更改所有這些方法。在某些情況下,foo類可能會有大約20個變量,每個變量都有一個Get()方法。
所以我想創建一個真正通用的GetValue(),我可以指定接口和我想要查詢的變量。
東西沿着線:
public object GetValue<T>(the class variable I want to query) where T: IDatabase
{
//query database using type T and return it to the variable specified
}
我想避免具有用於該方法內的每個成員變量條件。
這是可能的嗎?
將這項工作?(雖然我承認它未經測試) 'public void GetA()其中T:IDatabase,new() IDatabase database = new T(); a = database.Select(new Query(「something1」,「something2」,「something3」)); return a; \t \t }' –
MichaelTaylor3D
對不起,我無法得到這個格式正確 – MichaelTaylor3D