现在的位置: 首页 > 综合 > 正文

【黑马程序员】C#之结构

2019年09月08日 ⁄ 综合 ⁄ 共 943字 ⁄ 字号 评论关闭

----------------------
ASP.Net+Android+IOS开发
.Net培训、期待与您交流! ----------------------

1、结构是一种值类型,并且不需要堆分配。结构的实例化可以不使用new运算符。如果声明一个10000个Point对象组成的数组,为了引用每个对象,则需分配更多内存;这种情况下,使用结构可以节约资源。

定义:

   public struct onePerson
        {
            public string name;
            public string sex;
            public int age;
        }

使用:

  onePerson person1;
            person1.name = "李明";
            person1.sex = "男";
            person1.age = 32;

2、结构的特征:
在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。结构类型永远不是抽象的,并且始终是隐式密封的,因此在结构声明中不允许使用abstract和sealed修饰符。

3、结构不能声明默认构造函数(没有参数的构造函数)或析构函数,但可以声明带参数的构造函数,也可以定义成员函数

示例:

   public struct onePerson
        {
            public string name;
            public string sex;
            public int age;
            
            public void opp()
            { 
            //内容
            }
            public  onePerson(string Name,string Sex,int Age)
            {
                name = Name;
                sex = Sex;
                age = Age;
                
            }

上述代码opp()为成员函数,onePerson()为自定义有参构造函数。

4、结构可以实现接口,但不能从另一个结构或类继承,而且不能作为一个类的基,所有结构都直接继承自 System.ValueType,后者继承自 System.Object。

5、结构在赋值时进行复制。将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。

int age1;
age1 = person1.age;

此时是将person1里age的值复制给age1。

----------------------
ASP.Net+Android+IOS开发
.Net培训、期待与您交流! ----------------------

抱歉!评论已关闭.