2 つのステートメントのmyType
は、非常に異なる役割を果たします。
public object sqlLeggi(string sql, Type myType){
ここでmyType
は、 Type クラスType
のインスタンスを参照するオブジェクトです。
var results = cmd.ExecuteQuery< myType > ();
これは、特定の型を参照する構文構造であり、この場合は実際にmyType
名前が付けられます。 myType
現在、通常、この特定の問題を処理するには 2 つの方法があります。
- のオブジェクト型を見て、代わりにオブジェクト パラメーターを取る
cmd
オーバーロードまたは代替メソッドがあるかどうかを確認します。ExecuteQuery
Type
Type
そもそもオブジェクトがないように、メソッドをジェネリックにします。
最初のケースは、おそらく次のように記述されます。
var results = cmd.ExecuteQuery(myType);
2 番目は次のようになります。
public myType sqlLeggi<myType>(string sql{
SQLiteCommand cmd = DB.CreateCommand(sql);
var results = cmd.ExecuteQuery< myType > ();
[..]
}
ご了承ください:
myType
代わりにメソッドを返すようにしましたobject
myType
メソッドのジェネリック パラメータとして指定されるようになりました。sqlLeggi<myType>
この場合の命名規則では、ジェネリック型パラメーターに名前を付けるT
か、何かで始まるT
ようにする必要があるため、私のアドバイスは次のとおりです。
public T sqlLeggi<T>(string sql{
SQLiteCommand cmd = DB.CreateCommand(sql);
var results = cmd.ExecuteQuery<T>();
[..]
}