如何在c#中获得对象的不同属性?
我有一个具有如下属性的类:如何在c#中获得对象的不同属性?,c#,C#,我有一个具有如下属性的类: public class Car { public long No { get; set; } public string Name { get; set; } public int Door { get; set; } public Color Color { get; set; } public int MaxSpeed { get; set; } publi
public class Car
{
public long No { get; set; }
public string Name { get; set; }
public int Door { get; set; }
public Color Color { get; set; }
public int MaxSpeed { get; set; }
public int Price { get; set; }
}
(这个班就是一个例子,我真正的班比它大。)
在我的程序中,我需要从db中获得这个类的不同属性(不是每次都是所有属性)。例如,在一种情况下,我需要一些汽车的名称和颜色,在另一种情况下,我需要名称和车门和价格。
我想创建一个支持所有差异条件的方法。我知道我可以使用'params'和'enum'创建它,但我正在研究最好的方法。谢谢您可以在调用属性时查询它
public int Value{
get{
int myValue = getValue();
return myValue;
}
}
试着这样做:
public object[] GetProperties(int state)
{
object[] temp;
switch(state)
{
case(0):
{
temp=new object[]{Name,Color};
}break;
case(1):
{
temp=new object[]{Name,door};
}
}
}
在这之后,您知道,什么需要返回您的函数,并且很容易解析返回结果 我假设“得到不同的属性”实际上意味着“得到不同的属性”,对吗?除此之外,你的问题一点也不清楚。如果
Car
正确初始化,什么会妨碍您使用所需的属性?您是否使用Entity Framework从db或其他与LINQ兼容的ORM获取数据?除非获取某些属性特别昂贵(例如,因为它们来自不同的表)您最好始终归还整辆汽车。去DB的最大时间损失是往返;一旦你得到一个栏目,再增加十个栏目的成本就很小了。简单的答案是:不要。只需加载汽车
对象并使用所需的属性即可。加载它们看起来都不昂贵,所以这一切都很好,而且代码复杂性会大大超过性能上的任何提高(不会有任何提高)。这应该不是问题,但如果您想要检索部分行,可以创建几个类。汽车是彩色的。或者创建一些接口。但这可能会带来一些其他问题。这就是类型化与非类型化之争