Я понимаю, что название может быть очень запутанным, поэтому, чтобы объяснить, что я хотел бы сделать, я проиллюстрирую, как я могу легко решить ту же проблему в PHP.
Например, я даю пользователю своегоПриложение выбирает типы баз данных (например, MySQL, MSSQL и т. д.).
В моем коде я хотел бы иметь только одну функцию для каждой операции, а не функцию для каждой базы данных, как я объясню ниже.
НЕ
main.php
<?php
function mysql_get_users() {
//Foo
}
function mssql_get_users() {
//Foo
}
if($dbtype == "mysql") {
echo mysql_get_users();
}
if($dbtype == "mssql") {
echo mssql_get_users();
}
?>
НО
main.php
<?php
if($dbtype == "mysql") {
include("mysql.php");
}
if($dbtype == "mssql") {
include("mssql.php");
}
echo get_users();
?>
mysql.php
<?php
function get_users() {
//Foo
}
?>
mssql.php
<?php
function get_users() {
//Foo
}
?>
Теперь у меня та же проблема, но в C # с использованием Visual Studio 2010. Так как я не могу сделать это:
if(dbtype=="mysql") {
public static MySqlConnection connect(String connectionString)
{
MySqlConnection connection = new MySqlConnection(connectionString);
connection.Open();
return connection;
}
}
Большая проблема с вышесказанным заключается, в частности, в том, что я не могу поместить выражение if вокруг метода (функции), то мне приходится сталкиваться с проблемами типов, которые являются уникальными для каждого типа базы данных, среди которых я должен включить возвращаемую переменную соединения in каждый метод связан с функцией базы данных.
Итак, есть мысли о том, как это исправить и заставить его работать, как в примере с PHP выше?Я не являюсь ни экспертом, ни новичком в C #, но учусь довольно быстро.