C# 中创建对象数组

以前一直没有在C#中创建过对象数组,今天写了个小练习,结果用到对象数组的时候不会用了。

 

在C#中创建对象数组不像C++。

 

代码:

 

 Student[] student=new Student[5];


 

这里在创建对象数组的时候没有用括号指定参数,不像创建单个对象那样

创建单个对象的代码:

Student student=new Student();


同时如果在创建对象数组的时候前面的数组维数中括号不能指定维数,如果指定维数则编译出错:

Student[5] student=new Student[5]; //这里是编译不过去的。

 

请注意, 在创建一个对象数组以后,没有生成任何对象,而是简单一个对对象的引用的数组,如果这个时候要使用对象,会出现空指针引用。在具体的使用数组中每一个引用的时候,还需要用new 创建对象.

 Student[] student = new Student[5];
            student[0] = new Student();
            student[0].Age = 12;
            student[1] = new Student();
            student[1].Age = 13;
            student[2] = new Student();
            student[2].Age = 74;
            student[3] = new Student();
            student[3].Age = 34;
            student[4] = new Student();
            student[4].Age = 32;


然后才可以使用对象数组。这里和C++是不一样的。也就是说,每一个数组元素都要单独的初始化。

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
C#的`PropertyGrid`控件是一个功能强大的组件,它允许用户通过属性编辑界面来查看和修改对象的属性。如果要在`PropertyGrid`显示对象数组,需要对数组的每个对象以及其属性进行一些特定的处理,因为`PropertyGrid`默认是设计来展示单个对象的属性的。 要在一个`PropertyGrid`显示对象数组,可以通过以下步骤进行: 1. 创建一个宿主对象,该对象包含了对象数组作为其属性之一。这样,`PropertyGrid`就可以显示宿主对象的属性,包括对象数组。 2. 使用`TypeConverter`属性来告知`PropertyGrid`如何显示对象数组。通常,可以使用`ExpandableObjectConverter`或者自定义`TypeConverter`来实现数组的展开和折叠。 3. 在宿主对象添加逻辑来处理对象数组的动态更改。比如,当`PropertyGrid`的数组元素被修改时,可能需要更新数组内部的状态。 下面是一个简单的示例代码,展示如何在C#窗体应用程序使用`PropertyGrid`显示对象数组: ```csharp using System; using System.Collections; using System.ComponentModel; using System.Windows.Forms; public class MyObject { [Category("Data")] public string Name { get; set; } [Category("Data")] public int Value { get; set; } } public class MyObjectArrayContainer { private MyObject[] myObjects = new MyObject[3]; public MyObjectArrayContainer() { for (int i = 0; i < myObjects.Length; i++) { myObjects[i] = new MyObject { Name = "Object " + (i + 1), Value = i }; } } [TypeConverter(typeof(ExpandableObjectConverter))] public MyObject[] Objects { get { return myObjects; } } } public partial class Form1 : Form { public Form1() { InitializeComponent(); MyObjectArrayContainer container = new MyObjectArrayContainer(); PropertyGrid propertyGrid = new PropertyGrid(); propertyGrid.SelectedObject = container; this.Controls.Add(propertyGrid); } } ``` 在这个示例,`MyObject`类代表我们要在数组存储的对象。`MyObjectArrayContainer`类包含了一个`MyObject`数组,并且将这个数组标记为`TypeConverter(typeof(ExpandableObjectConverter))`,以便在`PropertyGrid`可以展开和查看每个数组元素。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值