如何在2类上声明变量

时间:2015-03-17 12:58:13

标签: c# winforms

我有2个这样的类尝试连接到mysql

这两个类有相同的方法有些不一样。

if (isRemote)
{
    RemoteMySQL mySql = new RemoteMySQL();
}
else
{
    MySQL mySql = new MySQL();
}
mySql.Connect();

当我声明mySql这样mySql.Connect();时,错误不会在当前上下文中退出。

1 个答案:

答案 0 :(得分:4)

我会在你的情况下使用工厂设计模式。代码就像......

    public interface IMySql
    {
        void Connect();
    }
    class RemoteMySQL : IMySql
    {
        public void Connect()
        {}
    }

    class MySQL : IMySql
    {
        public void Connect()
        { }
    }

在Factory.cs中,

public IMySql Factory(bool isremote)
        {

            if (isremote)
                return new RemoteMySQL();

            else
                return new MySQL();
        }

因此,当您想要使用Factory时,可以将代码用作:

var mysql = Factory(true);// remote case
mysql.Connect()