日期:2014-05-17  浏览次数:20702 次

请教个初学者问题:如何自定义一个sqlconnection类?
想定义一个类,返回一个sqlconnection对象,以便重复调用,如何实现?
我定义了一个类,构造函数返回一个sqlconnection对象,但是我
在其他类中调用时
Conn conn = new Conn();
conn.Open();
则报错Conn类中美定义Open方法。

如果
Sqlconnection conn = new Conn();
又不能转换。

应该怎么实现?请教各位,我非IT专业 初学者

------解决方案--------------------
class Conn
{
    private string constr = ""; // connection string

    public static implicit operator SqlConnection(Conn instance)
    {
        return new SqlConnection(instance.constr);
    }
}


调用
SqlConnection conn = new Conn();
------解决方案--------------------
还有一种写法

class?Conn : SqlConnection
{
????private?string?constr?=?"";?//?connection?string
?
    public SqlConnection() : base(constr) { }
}

------解决方案--------------------
如果“构造函数”返回一个sqlconnection对象,那么这个类必定就是(is-a)SqlConnection对象。因此从字面上理解,它就应该继承自SqlConnection。

继承自一个现成的类型,目的是扩展它的功能。而如果你没有扩展什么东西,如果使用SqlConnection也很方便,那么你就没有必要多设计一个类型。我们编程时当然是“类型越少越好、代码越少越好,最好连代码都不写而仅仅用鼠标拖一拖点一点就设计出程序”。只有必要时才需要设计自定义类型。

而这个“必要时”,往往就是指“从应用出发”。先搞清楚你要做的一个东西的业务领域背景、分析出所涉及的类型(以及有没有必要自定义类型)。而不是考虑那些纯粹计算机领域概念的类型。