求高手解答C#关于泛型类的问题
比如我有两个数据实体类!user类包括name.pwd等属性info类包括adduser,addtime,content等属性我想利用泛型类做一个通用的save()方法,...
比如我有两个数据实体类!
user类 包括name.pwd等属性
info类 包括 adduser,addtime,content等属性
我想利用泛型类做一个通用的save()方法,保存数据到数据库!
用法如:
user item1 = new user();
item1.name = "";
item1.pwd ="";
item1.save();//保存数据
info item2 = new info();
item2.adduser= "";
item2.addtime="";
item2.content="";
item2.save();//保存数据
这个泛型类的话要做的就是写一个通用的方法 save() 展开
user类 包括name.pwd等属性
info类 包括 adduser,addtime,content等属性
我想利用泛型类做一个通用的save()方法,保存数据到数据库!
用法如:
user item1 = new user();
item1.name = "";
item1.pwd ="";
item1.save();//保存数据
info item2 = new info();
item2.adduser= "";
item2.addtime="";
item2.content="";
item2.save();//保存数据
这个泛型类的话要做的就是写一个通用的方法 save() 展开
4个回答
展开全部
注:大体思路(因现用电脑没调试工具,暂并未经过测试,可先看一下大体思路)
class Program
{
static void Main(string[] args)
{
user item1 = new user();
General<user> test = new General<user>(item1);
test .save();
info item2 = new info();
General<info> test1 = new General<info>(item2);
test1 .save();
}
}
class General<T>
{
备首 public T obj;
public General(T obj)
仿宴数 {
this.obj = obj;
}
public save(T obj)
{
//在这里面写保存数据里面的逻辑。
}
}
这是大体的思路,你先看一下是祥悔否明白,因电脑的问题就暂不写细节了,如果需要细节的了解,有可能需要明天或后天(这几天事情有些忙不一定什么时候能回办公室)
展开全部
反射类实例的属性然后遍历就行了啊
publi void save<t>(t tc)
{
Type t = tc.GetType();//获得该类的Type
foreach (PropertyInfo p in t.GetProperties )
{
object value1 = p.GetValue(tc, null));//用p.GetValue获得值
string name = p.Name;//获得属性的名字
}
//之后拼纳册接SQL字符串存入氏茄孙数歼链据库就行了
}
publi void save<t>(t tc)
{
Type t = tc.GetType();//获得该类的Type
foreach (PropertyInfo p in t.GetProperties )
{
object value1 = p.GetValue(tc, null));//用p.GetValue获得值
string name = p.Name;//获得属性的名字
}
//之后拼纳册接SQL字符串存入氏茄孙数歼链据库就行了
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也不凳大太懂,交流一下,
在类中写保存的方法,
在泛型中调用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DYTest
{
class Program
{
static void Main(string[] args)
{
User item = new User();
UserInfo item2 = new UserInfo();
item.name = "111";
item.pwd = "2323";
item2.addtime = "1121";
item2.adduser = "wewewe";
item2.content = "1421441414";
SaveType<ISave> ss = new SaveType<ISave>();
ss.Save<User>(item);
ss.Save<UserInfo>枣察竖(item2);
Console.Read();
}
}
interface IProduce
{
void Produce();
}
class User:ISave
{
public string name;
public string pwd;
public void Save()
{
Console.WriteLine("保存到数据库的方法");
}
}
class UserInfo:ISave
{
public string adduser;
public string addtime;
public string content;
public void Save()
{
Console.WriteLine("INFO类保存到数据没世库的方法");
}
}
class SaveType<T>
{
public void Save<T>(T t) where T:ISave
{
t.Save();
}
}
interface ISave
{
void Save();
}
}
你看这个可以吗
在类中写保存的方法,
在泛型中调用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DYTest
{
class Program
{
static void Main(string[] args)
{
User item = new User();
UserInfo item2 = new UserInfo();
item.name = "111";
item.pwd = "2323";
item2.addtime = "1121";
item2.adduser = "wewewe";
item2.content = "1421441414";
SaveType<ISave> ss = new SaveType<ISave>();
ss.Save<User>(item);
ss.Save<UserInfo>枣察竖(item2);
Console.Read();
}
}
interface IProduce
{
void Produce();
}
class User:ISave
{
public string name;
public string pwd;
public void Save()
{
Console.WriteLine("保存到数据库的方法");
}
}
class UserInfo:ISave
{
public string adduser;
public string addtime;
public string content;
public void Save()
{
Console.WriteLine("INFO类保存到数据没世库的方法");
}
}
class SaveType<T>
{
public void Save<T>(T t) where T:ISave
{
t.Save();
}
}
interface ISave
{
void Save();
}
}
你看这个可以吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
RMB30帮助你完成
追问
不用啦,我觉得百度知道是一个互通有无的地方,我并不是只提问,也有解答别人的问题!如果你想赚钱的话呢还是去工作或者去猪八戒网吧
不过谢谢你的回答
追答
谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询