|zyciis| 我有两个类,内容都是相同的,只是类名不同,然后我判断是用哪一个类 谁能看看有没有更科学的写法
如
public class Info
{
Int32 _ID=0;
Int32 _Name ="";
... //表示更多
public Int32 ID
{
set {_ID =value;}
get {retur _ID;}
}
public String Name
{
set {_Name =value;}
get {retur _Name;}
}
... //表示更多
}
public class InfoTemp
{
Int32 _ID=0;
Int32 _Name ="";
... //表示更多
public Int32 ID
{
set {_ID =value;}
get {retur _ID;}
}
public String Name
{
set {_Name =value;}
get {retur _Name;}
}
... //表示更多
}
上面是我的两个类然后以下是我的程序
info info1 = ... //这里取得一个info
infoTemp infoTemp1 = ... //这里取得一个infoTemp
bool valid = .. //这里取得true 或 false
if(valid)
{
txtID.Text = info1.ID.ToString();
txtName.Text = info1.Name.Tostring();
... //表示更多
}
else
{
txtID.Text = infoTemp1.ID.ToString();
txtName.Text = infoTemp1.Name.Tostring();
... //表示更多
}
如上面这样因为info和infoTemp的结构是一样的
然后比如他们有100个的话那么像上面那样的话都要进行写两次
这样感觉很不方便
有没有更好的写法
谢谢 --------------------编程问答-------------------- 除非代码安装行数计算价钱,我实在没有办法理解得了,干嘛一样的累写几个。
-_-!! --------------------编程问答-------------------- 同意楼上,一样的类最好只有一个。
现在不一样的类都要通过各种复用方式来节省代码,楼主却反其道而行。 --------------------编程问答-------------------- 为什么要写成这样呢,很费解啊,非要的化就继承咯
public class InfoTemp:Info{}
--------------------编程问答-------------------- 本来有价格类
PriceInfo.cs
用来保存商品价格,但现在他要求,在这个商品的价格修改后他还可以返回他最初的价格
所以我就用一个PriceTempInfo.cs来保存他添加时的价格
当他要读取原来的价格的时候就读取PriceTempInfo.cs这个类 --------------------编程问答-------------------- 设计思路一踏乎涂~ --------------------编程问答-------------------- 如果非要照你这样,定义一个接口就是了:
public inte易做图ce Iinfo
{
Int32 ID{ get;set;}
String Name{ get;set;}
... //表示更多
}
public class Info:Iinfo
{
Int32 _ID=0;
Int32 _Name ="";
... //表示更多
public Int32 ID
{
set {_ID =value;}
get {retur _ID;}
}
public String Name
{
set {_Name =value;}
get {retur _Name;}
}
... //表示更多
}
public class InfoTemp:Iinfo
{
Int32 _ID=0;
Int32 _Name ="";
... //表示更多
public Int32 ID
{
set {_ID =value;}
get {retur _ID;}
}
public String Name
{
set {_Name =value;}
get {retur _Name;}
}
... //表示更多
}
调用方法:
Iinfo useInfo;--------------------编程问答-------------------- UP
info info1 = ... //这里取得一个info
infoTemp infoTemp1 = ... //这里取得一个infoTemp
bool valid = .. //这里取得true 或 false
if(valid)
{
useInfo = info1;
}
else
{
useInfo = infoTemp1;
}
txtID.Text = useInfo.ID.ToString();
txtName.Text = useInfo.Name.Tostring();
... //表示更多
思路最重要
请指点 --------------------编程问答-------------------- 1.价格能有多复杂?还要搞个类...
2.客户要的是两个实例...不是两个类...
3.你根本没有理解OO...一塌糊涂也就难免了... --------------------编程问答-------------------- UP:
我的类是对应数据库的字段
楼上的那我上面的要求的话你会怎么来做呢
环境:
本来有一个表用来保存字段
然后现在客户要求在他不管怎么修改这里面的某一个价格
他都可以查看他原来的价格,而且还可以还可以还原最初的价格
但原来的表数据结构不能改变
要怎么做最科学
谢谢 --------------------编程问答-------------------- Info info = new Info();
InfoTemp infoTemp = new InfoTemp();
Type myType = null;
bool valid = true;
object obj = null;
if (valid)
{
myType = typeof(Info);
obj = info;
}
else
{
myType = typeof(InfoTemp);
obj = infoTemp;
}
object obj = System.Activator.CreateInstance(myType);
PropertyInfo pi = myType.GetProperty("Name");
string name = pi.GetValue(obj, null);
pi = myType.GetProperty("ID");
int id = Convert.ToInt32(pi.GetValue(obj, null));
以此类推 --------------------编程问答-------------------- 设计一个表就好了:
字段:品名,价格,价格生效时间,价格失效时间
其中主键是:品名,价格失效时间
这样用户就可以查看他原来的价格,而且还可以还可以还原最初的价格
注:这个结构是SAP里的常用的 --------------------编程问答-------------------- 一个类实例化为两个对象可以吗?
1个是原来的价格,一个是当前的价格 --------------------编程问答-------------------- 不是很理解lz的思路 --------------------编程问答-------------------- 或者给该类分别针对每个价格字段加一个当前价格字段
初始化该类时每个价格和当前价格,修改时只改当前价格字段的值
恢复时用原价格字段值..
补充:.NET技术 , ASP.NET