189 8069 5689

C#结构的学习-创新互联

结构是程序员定义的数据类型,非常的类似于类。有数据成员和函数成员。

专注于为中小企业提供成都网站制作、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业琼中黎族免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

但是也有区别:

1)类是引用类型,而结构是值类型;

2)结构是隐式密封的,不能被派生;

语法声明与类相似:

  1. //结构的声明
  2. struct
  3. //包含的成员变量

看下边的示例代码来演示C#结构的使用方法:

  1. staticvoidstring
  2. "first:{0},{1}"
  3. "second:{0},{1}"
  4. "third:{0},{1}"
  5. struct
  6. publicint
  7. publicint

结构是值类型

1)结构类型的变量不能使null;

2)两个结构变量不能引用同一对象

  1. staticvoidstring
  2. newnull
  3. newnew
  4. //赋值类实例
  5. //赋值结构实例
  6. class
  7. publicint
  8. publicint
  9. struct
  10. publicint
  11. publicint

先创建一个CSimple类,和一个Simple结构

在Main()分别对它们实例化声明两个个变量后,cs1和cs2分别指向在堆中的引用,而ss1和ss2分别在栈中分配空间并存储。
把一个结构赋值给另外一个结构,就是从一个结构中把值复值给另外一个结构。与类不同的是,复制类变量时只有引用被复制。

如上面的代码,类赋值结束后,cs2和cs1指向堆中的同一个对象。但是在结构赋值结束后,ss2成员的值和ss1成员的值相同。

结构中的构造函数和析构函数

语言隐式的为每个结构提供一个无参数的构造函数。这个构造函数把结构的每个成员设置为该类型的默认值,引用成员被设置成null

预定义的无参数构造函数对每个结构都存在,而且不能删除或者重新定义。但是可以创建另外的构造函数,只要他们有参数。这和类不同,对于类,编译器只在没有其它构造函数声明时提供隐式的无参数构造函数。

要调用一个构造函数,包括隐式的无参数构造函数,要使用new运算符。即使不从堆中分配内存也使用new运算符。

如下面的实例:

  1. staticvoidstring
  2. new//调用隐式的构造函数
  3. new//调用构造函数
  4. "{0},{1}"
  5. "{0},{1}"
  6. struct
  7. publicint
  8. publicint
  9. publicintint

也可以不适用new运算符创建结构的实例。但是,有一些限制:

1)不能使用数据成员的值,直到显示的设置它

2)不能调用任何函数成员,直到所有数据成员已经被赋值

  1. staticvoidstring
  2. "{0},{1}"//编译错误,s1.x, s1.y还没有被赋值
  3. "{0},{1}"
  4. struct
  5. publicint
  6. publicint


原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

C#结构的学习

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:C#结构的学习-创新互联
文章起源:http://cdxtjz.cn/article/eosjd.html

其他资讯