求高手解答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()
展开
 我来答
威海迈智森网络
2014-06-25 · 超过13用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:20.5万
展开全部

注:大体思路(因现用电脑没调试工具,暂并未经过测试,可先看一下大体思路)

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)
        {
            //在这里面写保存数据里面的逻辑。
        }
    }

这是大体的思路,你先看一下是祥悔否明白,因电脑的问题就暂不写细节了,如果需要细节的了解,有可能需要明天或后天(这几天事情有些忙不一定什么时候能回办公室)

一郎大神
2014-06-25 · TA获得超过1180个赞
知道小有建树答主
回答量:1033
采纳率:92%
帮助的人:315万
展开全部
反射类实例的属性然后遍历就行了啊

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字符串存入氏茄孙数歼链据库就行了
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dyzeke
2014-06-25 · TA获得超过208个赞
知道小有建树答主
回答量:676
采纳率:60%
帮助的人:325万
展开全部
我也不凳大太懂,交流一下,
在类中写保存的方法,
在泛型中调用。

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();
}
}
你看这个可以吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
33...2@qq.com
2014-06-25 · 贡献了超过107个回答
知道答主
回答量:107
采纳率:0%
帮助的人:39.9万
展开全部
RMB30帮助你完成
追问
不用啦,我觉得百度知道是一个互通有无的地方,我并不是只提问,也有解答别人的问题!如果你想赚钱的话呢还是去工作或者去猪八戒网吧
不过谢谢你的回答
追答
谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式