public class Student{
public string Name {get;set;}
public string Sex {get;set;}
public string ClassName {get;set;}
}
假设 string FieldName = "Name";
能否用
Student st = new Student(){
FieldName = "sdf"
}
这样写吗? 有什么样的方法可以调用。
Student st = new Student(){ FieldName = "sdf" };
这样写是没问题的,你的Student()这里没写括号
谢谢回复 , FieldName 是一个变量,不知道用什么方法能通过这个变量取到对应的字段。直接这样写肯定是不行的。
@stevenhzj: 可以用反射
public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type = aa.GetType();//获取类型 System.Reflection.PropertyInfo propertyInfo = type.GetProperty("Property1"); propertyInfo.SetValue(aa, 5, null);//给对应属性赋值 int value = (int)propertyInfo.GetValue(aa, null); Console.WriteLine(value ); }
FieldName= new Student().ClassName;
楼上那们瞎答!@
一楼是瞎说,
student()
{
//成员变量只能为student成员
}
其实也是相当于
Student st = new Student();
st.Name="";
st.Sex="";
st.ClassName="";
好吧,我理解错他的意思了
没有看出来你想干什么呢?
你到底想干嘛?
感谢各位的热心回复。可能是表达不清吧。已经用另外方式解决了。
本意是想通过 一个变量 来为Model赋值,类似 rows["field"]="value";
对Model特殊处理即可。
private IDictionary<string,object> dic=new Dictionary<string, object>(); public object this[string key] { get { return dic[key]; } set { dic[key] = value; } }