请教一个泛型转换问题

gogocsgogodn 2009-04-16 12:07:00
主要是数据源转换的问题,比如

public class Charting
{
public DataTable DataSource
{
set { _dt = value; }
get { return _dt; }
}
public SeriesCollection SC
{

set { _sc = value; }
get { return _sc; }
}
}
Charting c = new Charting();

//c.DataSource = this.GetDataSource();//
//c.SC = GetSC();
c.CreateStaticPic(this.Chart1);

private DataTable GetDataSource()
{
.....
return an instance of DataTable
}


private SeriesCollection GetSC()
{
.....
return an instance of SeriesCollection
}
上面我定义两种类型的数据源,能不能用一个泛型数据源,然后Charting里只定义个泛型的DataSource,既可以接收datatable类型也可以接收SeriesCollection 类型,泛型没怎么用过,熟悉的兄弟 给个大致思路,谢了
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gogocsgogodn 2009-04-16
  • 打赏
  • 举报
回复
能不能就我给出的写个大致模型呢
kingtiy 2009-04-16
  • 打赏
  • 举报
回复
返回T类型的值。使用的时候,给T指定一个类型就可以了。
public static T GetOneRowOneColValue<T>( string sql)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connString;
conn.Open();
SqlCommand command = new SqlCommand(sql, conn);
command.CommandType = CommandType.Text;
SqlDataReader ReaderTemp = command.ExecuteReader();
if (ReaderTemp != null && ReaderTemp.HasRows)
{
ReaderTemp.Read();
T value = (T)ReaderTemp[0];
return value;
}
else
{
throw new Exception("获取单个值失败");
}

}
_see_you_again_ 2009-04-16
  • 打赏
  • 举报
回复
 
public class Charting<T>
{
T dataSource;
public T DataSource
{
set { dataSource = value; }
get { return dataSource; }
}
}
Charting<DataTable> c= new Charting<DataTable>();
DataTable dt = chart.DataSource;

Charting<SeriesCollection> c= new Charting<SeriesCollection>();
SeriesCollection sc = chart.DataSource;
gogocsgogodn 2009-04-16
  • 打赏
  • 举报
回复
IDataSource 具体怎么写呢 报了个错无法将DataTable转换为IEnumerable类型
gogocsgogodn 2009-04-16
  • 打赏
  • 举报
回复
谢谢
tabbycat 2009-04-16
  • 打赏
  • 举报
回复
你这个不是用泛型来解决的,是用接口来做的

public class Charting
{
private IDataSource _dataSource;

public IDataSource DataSource
{
get
{
return _dataSource;
}

set
{
_dataSource = value;
}
}

public Charting(IDataSource dataSource)
{
this._dataSource = dataSource
}
}

IDataSource 你按自已的需要去选择,可以采用ICollection接口,更强一些的是IEnumerable

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧