Tag: 字段

基于.Net(C#)中的字段反序列化json

我正在编写一个应用程序来获取这样的Json对象列表: [ { “ObjectType”: “apple”, “ObjectSize”: 35, “ObjectCost”: 4, “ObjectTaste”: “good”, “ObjectColor”: “golden” }, { “ObjectType”: “books”, “ObjectSize”: 53, “ObjectCost”: 7, “Pages”: 100 }, { “ObjectType”: “melon”, “ObjectSize”: 35, “ObjectTaste”: “good”, “ObjectCost”: 5 }, { “ObjectType”: “apple”, “ObjectSize”: 29, “ObjectCost”: 8, “ObjectTaste”: “almost good”, “ObjectColor”: “red” } ] 我想创建一个基类ItemToSell (大小,成本),并从中派生Apple,Melon和Book,然后根据“ ObjectType ”字段进行反序列化,使其适合任何类。 我希望它构建一个ItemToSell对象列表,每个对象都是Apple,Melon或Book。 我怎么能在.Net中这样做? 提前致谢 […]

如何在asp.net下拉列表中添加额外的属性字段

下面我可以设置值和文字: dropListUserImages.DataValueField = “Value”; dropListUserImages.DataTextField = “Text”; dropListUserImages.Items.Add(new ListItem { Text = srText, Value = srValue}); 我还想设置额外的属性,例如: data-imagesrc data-description 我怎样才能做到这一点?

为什么不能在结构体内初始化非静态字段?

考虑这个代码块: struct Animal { public string name = “”; // Error public static int weight = 20; // OK // initialize the non-static field here public void FuncToInitializeName() { name = “”; // Now correct } } 为什么我们可以初始化结构中的static字段而不non-static字段? 为什么我们必须在方法体中初始化non-static ?

使用数组字段而不是大量的对象

根据这篇文章 ,我想知道人们使用数组存储大量数据集(比如说> 10,000,000个对象)来存储数据字段而不是实例化数百万个对象并增加内存开销(例如,12-每个对象24个字节,具体取决于您阅读的文章)。 每个属性的数据因项目而异,因此我不能使用严格的Flyweight模式,但会设想类似的东西。 我对这种表示的想法是,有一个’模板对象’…… class Thing { double A; double B; int C; string D; } 然后是一个容器对象,其中包含一个根据请求创建对象的方法…… class ContainerOfThings { double[] ContainerA; double[] ContainerB; int[] ContainerC; string[] ContainerD; ContainerOfThings(int total) { //create arrays } IThing GetThingAtPosition(int position) { IThing thing = new Thing(); //probably best done as a factory instead thing.A = ContainerA[position]; thing.B […]

公开受保护字段的最佳方式

我有这样一个基类: public class BaseModalCommand { protected object m_commandArgument; protected int m_commandID; protected int m_enableUIFlags; public virtual void OnIdle() { } public virtual void OnResume() { } public virtual void OnStart(int commandID, object argument) { } public virtual void OnStop() { } public virtual int EnableUIFlags { get { return this.m_enableUIFlags; } } } 虚拟方法将在派生类型中被覆盖。 如果我通过FxCop运行它,它抱怨没有声明可见的实例字段,并建议将其更改为私有并将其作为受保护的属性公开。 […]

私人比私人更私密? (C#)

有时您有一个支持属性的私有字段,您只需要通过属性设置器设置字段,以便在字段更改时可以执行其他处理。 问题是,从同一类的其他方法中意外绕过属性setter仍然很容易,并且没有注意到你已经这样做了。 有没有办法在C#中解决这个或一般的设计原则来避免它?

在字段定义或类构造函数中初始化类字段

我有一个类,其中一个字段需要在初始化对象时进行初始化,例如需要在对象添加/删除之前创建的列表。 public class MyClass1 { private List _otherClassList; public MyClass1() { this._otherClasslist = new List(); } } public class MyClass2 { private List = new List(); public MyClass2() { } } 这两个类有什么区别,为什么你会选择一种方法而不是另一种方法呢? 我通常在构造函数中设置字段,就像在MyClass1中一样,因为我发现更容易在一个地方查看以查看实例化对象时发生的所有事情,但是在任何情况下都更好像在MyClass2中一样直接初始化一个字段?

如何循环类的字段名称

我有一个包含150多个字段的类。 我需要数组中的字段名称(而不是值)。 因为在代码中手动编写150个字段名称(可根据需求变化递增或递减计数)非常困难而且不是很好的方法。 我需要帮助来获取字段名称的循环或获取数组中的字段名称列表,以便我可以循环它并在代码中使用它。 我正在使用visual studio 2008 谢谢

C#抽象类静态字段inheritance

我觉得我跳过了一两个C#课程,但这是我的困境: 我有一个抽象类,我从中派生出多个子类。 我确信,对于每个子类,我将有一个构造函数,它需要某个静态对象作为模型,并且每个子类的对象都不同。 我的第一种方法是在抽象父类中创建一个公共静态对象然后,在我开始创建子类的任何实例之前,我会为它们中的每一个修改它,但事实certificate这样我实际上只做了一个静态对象,用于抽象类,每个子类都使用它。 我怎么能解决这个问题? 更确切地说,这是伪代码: 父抽象类: abstract class AbstractClass { static public ModelObject Model; … } 其中一个子课程: class Child : AbstractClass { … public Child() { this.someField = Model.someField; } } 编辑: Model需要是“ModelObject”类的成员,它不应该是单例或其他任何东西。 EDIT2: 更确切地说,我选择了这种实施方案来进行国际象棋游戏:我有一个抽象的国际象棋类,子类代表游戏的具体部分:棋子,骑士等等。 抽象类inheritance自MeshMatObject,这是一个表示具有基本function的通用3d对象的类,如旋转,网格,材质,纹理等,它定义了象棋游戏块的抽象方法,如GetPossibleMoves()。 我上面讨论的Model对象是MeshMatObject的一个成员,在我看来,应该只在类外定义一次,然后用于所有的部分。 我的意思是:例如,所有的棋子都有相同的网格和纹理,所以每次你想制作一个棋子时,我都没有看到将模型作为参数的意义。

老实说,公共变量和公共财产访问者之间有什么区别?

可能重复: C#中的字段和属性有什么区别? 我应该使用公共属性和私有字段或公共字段来获取数据吗? 有什么区别: public string varA; 和 public string varA { get; set; }