我有一个函数叫joinMember(SAAmembership memb, int years)memb是一个对象,years是加入几年的会员
我想利用字典来对memb下的成员进行访问,这个对象下面有如下几个变量M_10_11,M_11_12,M_13_14,M_14_15。
我是这么做的:
Dictionary<int, int> yearmem = new Dictionary<int, int>();
yearmem.Add(2010, memb.M_10_11);
yearmem.Add(2011, memb.M_11_12);
yearmem.Add(2012, memb.M_11_12);
yearmem.Add(2013, memb.M_13_14);
yearmem.Add(2014, memb.M_14_15);
yearmem[2010] = 1;但是我发现memb.M_10_11的值并没有发生改变,
请问这是为什么?谢谢
我想利用字典来对memb下的成员进行访问,这个对象下面有如下几个变量M_10_11,M_11_12,M_13_14,M_14_15。
我是这么做的:
Dictionary<int, int> yearmem = new Dictionary<int, int>();
yearmem.Add(2010, memb.M_10_11);
yearmem.Add(2011, memb.M_11_12);
yearmem.Add(2012, memb.M_11_12);
yearmem.Add(2013, memb.M_13_14);
yearmem.Add(2014, memb.M_14_15);
yearmem[2010] = 1;但是我发现memb.M_10_11的值并没有发生改变,
请问这是为什么?谢谢
为什么要变?我想你是受了那些用c/c++指针来说事的做法的毒害。这不是c,把握好这个就能用正常的.net观点看待这个结果。
我有一个对象就像memb,它下面有很多字段,我想利用一种东西把这些字段进行编号,然后通过编号来进行控制这些字段,请问该如何实现呢?谢谢
using System.Reflection; static void Main(string[] args)
{
Member m = new Member();
PropertyInfo[] props = m.GetType().GetProperties();
int i = 0;
foreach (PropertyInfo p in props)
{
if (p.Name.IndexOf("property") >= 0)
{
p.SetValue(m,i.ToString() , null);
}
else if (p.Name=="JoinYear")
{
p.SetValue(m, "2012", null);
}
i++;
}
Console.ReadKey();
}class Member
class Member
{
public string JoinYear { get; set; }
public string propertyA { get; set; }
public string propertyB { get; set; }
public string propertyC { get; set; }
public string propertyD { get; set; }
public string propertyE { get; set; }
public string propertyF { get; set; }
public string propertyG { get; set; }
}
如此赋值,在字典yearmem中肯定有对应的(2010,1)这个键值对。
只是mem对象的成员值是不会改变的。建议把字典的值类型定义为mem类,yearmem<int,mem>
如果你觉得mem成员太多太烦,可能把成员定义为属性进行读取,那样就简洁了。
public string M1011
{
get{}
set{}
}
我有一个类叫SAAmembership,它下面有字段M_10_11,M_11_12,M_12_13,M_13_14以此类推
class SAAmembership
{
public int M_10_11;
public int M_11_12;
public int M_12_13;
public int M_13_14;
...
...
}每个字段代表一个年度,如M_10_11代表2010年到2011年之间的会员,以此类推,它的值只有两个一个是1代表是另一个是0代表不是。我的程序想查询这个人是否是当前会员,如果是,则延长一年会员,如果不是,则给他注册成当前年度的会员。因为字段太多,所以我想给他们编号,然后通过编号来灵活控制这些字段,以提供更强的控制功能并且能够对这些字段进行赋值和读取。
毫无扩展性,可维护性可言这个需求不能用一个类来放置所有的东西.
需要使用数据库(广义的)存下来的你分成多笔资料储存可以解决你提到的两个问题:
1.会员资格,年限的变更
2.灵活控制字段值.你只需要创建一个会员年度资格表(可以放置在DB,XML等地方)
以下是一个最简例子,栏位可以随你需求扩展
会员编号 + 会员姓名 + 年度 (如果你有会员主档表,会员姓名冗余,可以去掉)
用来放置会员年度资格信息.只要某会员当前年度在该表就有资料就延长一年,新增一笔资料
如果没有,直接新增当前年度的资料.至于灵活性,直接用查询语句操作,可以定位到你需要的任意资料.PS:lz看下我之前那楼给出的反射,根据类属性名称来给该属性赋值的例子,能够满足你想要根据属性名来赋值/取值