Tag: 对象

创建类型的变量以在C#中存储对象

我对编程有些新意,我对C#中的类,inheritance和多态有疑问。 在了解这些主题的同时,我偶尔会遇到类似这样的代码: Animal fluffy = new Cat(); // where Animal is a superclass of Cat* 这让我感到困惑,因为我不明白为什么有人会创建一个类型为Animal的变量来存储Cat类型的对象。 为什么一个人不会简单地写这个: Cat fluffy = new Cat(); 我确实理解为什么将子对象存储在父类型变量中是合法的,但不是为什么它有用。 是否有充分的理由将Cat对象存储在Animal变量与Cat变量中? 一个人可以举个例子吗? 我确定它与多态和方法覆盖(和/或方法隐藏)有关,但我似乎无法绕过它。 提前致谢!

动态对象智能感知

如果动态在编译时解析为对象,并且所有.NET类型都扩展了对象,为什么动态不像IntelliSense的对象那样? 每当我使用动态时,我都会收到一条消息“动态表达式。这将在运行时解决”。 当然它也应该显示对象成员?

访问List 中的对象属性

我正在尝试使用存储在List对象中的单个对象实例的属性,但我似乎无法直接访问属性。 我有一个对象( sportsCarVehicle ),它存储一个用户定义的名称( strVehicleName )(在其他属性中,但这并不重要)。 然后将对象存储在名为sportsCarVehicleStorage的List对象中。 我需要访问List的sportsCarVehicle每个实例, sportsCarVehicle List的值传递给strVehicleName上的combobox。 我假设我需要某种循环来遍历每个实例并将名称传递给combobox,但我的主要问题是无法访问我需要的属性。 sportsCarVehicle实例没有可引用的名称。 还有一点需要注意: sportsCarVehicle的构造函数在sportsCarVehicleStorage.Add()方法中调用。 有关如何做到这一点的任何建议?

具有字典属性的C#匿名对象

我正在尝试将字典转换为匿名类型,每个键都有一个属性。 我尝试谷歌它,但我能找到的是如何将匿名对象转换为字典。 我的字典看起来像这样: var dict = new Dictionary { {“Id”, “1”}, {“Title”, “My title”}, {“Description”, “Blah blah blah”}, }; 我想返回一个看起来像这样的匿名对象。 var o = new { Id = “1”, Title = “My title”, Description = “Blah blah blah” }; 所以我希望它循环遍历字典中的每个keyValuePair,并在对象中为每个键创建一个属性。 我不知道从哪里开始。 请帮忙。

C#LINQ with XML,无法将具有相同名称的多个字段提取到对象中

尝试使用LINQ XML将以下XML文件(可以更改)读入对象。 Adjustment Report pdf adobe_pdf Excel True adjustment report (?<ssn>\d{3}-\d{2}-\d{4}) “(?<last>\s{0,1}[AZ-‘.]+\s{0,1}[AZ-‘.]+),(?<first>\s[AZ-‘.]+\s{0,1})(?<middle>[AZ][.]|\s{0,1})”> “(?<ssn>\d{3}-\d{2}-\d{4})” “(?<total>\$[,/d]+)(?<adjust>\$[,/d]+)(?<monthly>\$[,/d]+)” 什么是无效的是将多个元素读入对象。 我只能阅读第一个。 显然,持有该字段的Object需要是一个数组? 这是我到目前为止的代码。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Xml.Linq; namespace ElementDemo { class Program { static void Main(string[] args) { XElement xml = XElement.Load(“C:\\TEMP\\test.xml”); var reports = from report in xml.Descendants(“report”) where report.Element(“name”).Value.Contains(“Adjustment Report”) […]

如何在C#中创建动态对象

我之前正在使用javascript。 在javascript中,我这样做是为了创建动态对象并为其分配属性。 var house = new object(); house.kitchen = 1; house.bedroom = 2; house.livingroom =3; 如何在C#中做同样的事情?

C#:如何在for循环中为整数(i)分配许多变量?

想象一下,我们有5个字符串变量,我们想在运行时为它们分配“Foo”。 而不是这个 string a1 = “Foo”; string a2 = “Foo”; string a3 = “Foo”; string a4 = “Foo”; string a5 = “Foo”; 我们不能使用这样的东西: for(int i = 0;i < 5;i++) { a+i = "Foo"; } 是否无法以类似的方式访问它们?

使用包含另一个对象数组的对象的reflection读取属性

如何使用c#中的reflection读取包含数组类型元素的对象的属性。 如果我有一个名为GetMyProperties的方法,并且我确定该对象是自定义类型,那么我该如何读取数组的属性及其中的值。 IsCustomType是确定类型是否为自定义类型的方法。 public void GetMyProperties(object obj) { foreach (PropertyInfo pinfo in obj.GetType().GetProperties()) { if (!Helper.IsCustomType(pinfo.PropertyType)) { string s = pinfo.GetValue(obj, null).ToString(); propArray.Add(s); } else { object o = pinfo.GetValue(obj, null); GetMyProperties(o); } } } 场景是,我有一个ArrayClass和ArrayClass的对象有两个属性: -string Id -DeptArray[] depts DeptArray是另一个具有2个属性的类: -string code -string value 因此,此方法获取ArrayClass的对象。 我想在字典/列表项中读取所有属性从上到下并存储名称/值对。 我能够为价值,定制,枚举类型做到这一点。 我被一堆物体困住了。 不知道怎么做。

将类似JSON的字符串从C#发送到javascript

我在JavaScript有一些代码如下: slider.setPhotos([ { “src”: “image1”, “name”: “n1” }, { “src”: “image2”, “name”: “n2” }, { “src”: “image3”, “name”: “n3” } ]); 我想从C#设置src和name的值。 假设C#值是这样的: var images = new string[] {“/images/a1.jpg”, “/images/a2.jpg”, “/images/a3.jpg”}; var names = new string[] {“First”, “Second”, “Third”}; 如何将这些值设置为JavaScript代码(即在C#代码中的Page Load方法中)?

如何在不访问源代码的情况下“深入”克隆第三方类的属性?

.NET框架的ICloneable接口通常提供了一种支持克隆类实例的方法。 但是如果我有多个第三方类 ,并且不想单独关注每个属性,那么如何有效地克隆这些类的对象呢? (这些类的源代码不可用)。 有没有办法使用generics和扩展方法 ? 我需要的是一个深度克隆,它创建一个包含所有属性和(子)对象的精确副本。 示例:假设您要在LinqPad中克隆UserQuery对象: void Main() { UserQuery uc=this; var copy=uc.CreateCopy(); // clone it } 我正在寻找的是一个CreateCopy()扩展,它允许创建一个副本,而不必处理这个类的细节,因为我没有UerQuery的源UerQuery 。 (请注意, UserQuery只是一个示例,用于显示我需要的内容,它也可以是PDF文档类,用户控件类,ADO.NET类或其他任何内容)。