首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一个类的构造函数设计解决方法

2012-01-01 
一个类的构造函数设计publicDict(stringEn){stringSelectCMDSELECT*FROM[dicts]WHERE([English]+En+

一个类的构造函数设计
public   Dict(string   En)
                {
                        string   SelectCMD   =   "SELECT   *   FROM   [dicts]   WHERE([English]= ' "+En+ " ') ";
                        Conn   cnn   =   new   Conn();
                        OleDbCommand   oCommand   =   new   OleDbCommand(SelectCMD,   cnn.oConn);
                        OleDbDataReader   oReader;
                        try
                        {
                                oCommand.Connection.Open();
                                oReader   =   oCommand.ExecuteReader();
                                while   (oReader.Read())
                                {
                                        this._Cn   =   oReader[ "Chinese "].ToString();
                                        this._En   =   oReader[ "English "].ToString();
                                        this._Id   =   Convert.ToInt32(oReader[ "id "].ToString());
                                }
                                return;

                        }
                        catch   (Exception   exception)
                        {
                               
                                throw   exception;
                        }
                }

我的本意是重载构造函数,使得可以自动返回类实例,
但是刚刚想到这样做有个小问题,即:如果查询为空时怎么办?
当然可以再设计一个有返回值的函数,
或者再设计一个检测是否有数据的函数,
如果有则执行带参构造函数,如果没有数据则执行默认的构造的函数,

我贴出来是想问问,在需要获取数据并实例化时,通常怎么操作?

[解决办法]
我个人更喜欢这个些
public class Dict{
public static Dict Undefine;
public Dict GetByEn(string En){
if(oReader.Read()){
return newInstance;
}
else{
return Undefine;


//或者return null
}

}
}

热点排行