返回顶部
首页 > 资讯 > 精选 >C#结构和类的不同点有哪些
  • 518
分享到

C#结构和类的不同点有哪些

2023-06-18 00:06:54 518人浏览 独家记忆
摘要

这篇文章主要讲解了“C#结构和类的不同点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#结构和类的不同点有哪些”吧!C#结构是堆栈对象,不能在堆上创建它;C#结构可以继承接口,但是不

这篇文章主要讲解了“C#结构和类的不同点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#结构和类的不同点有哪些”吧!

C#结构是堆栈对象,不能在堆上创建它;

C#结构可以继承接口,但是不能继承自其它结构;

不能重写结构的默认构造函数,需要自定义构造函数时必须创建附带参数的构造函数,以保证和默认构造函数的参数列表有所区别;

当使用new来创建结构对象时其构造函数自动被调用,若仅是像声明一个int类型的变量那样声明一个结构类型的变量而不new的话,那么结构中成员变量必须被初始化后才能使用该结构对象。

C#结构实例:

struct Student : IGrade   public int maths;  public int english;  public int csharp;   public int GetTot()      {  return maths+english+csharp;      }       public Student(int y)  {  maths = english = csharp = y;   }  }      public string GetGrade()   {  if(GetTot() > 240 )   return "Brilliant";  if(GetTot() > 140 )  return "Passed";  return "Failed";   }  }  interface IGrade  {      string GetGrade();  }

接下来看看怎么使用刚才创建的C#结构,代码如下:

Student s1 = new Student();  Console.WriteLine(s1.GetTot());  Console.WriteLine(s1.GetGrade());

C#结构示例之输出:

0  Failed

上述代码显示默认的构造函数被调用,构造函数将所有结构中的int成员变量都自动初始化为0,这就是为何合计为0的原因。

下面来看一段有意思的代码:

Student s2;  s2.maths = s2.english = s2.csharp = 50;  Console.WriteLine(s2.GetTot());  Console.WriteLine(s2.GetGrade());

C#结构示例之输出:

150  Passed

上述代码我们没有使用new来创建结构,所以构造函数不会被调用,仅是声明一个结构类型的变量s2,但是紧接着我们为结构的所有成员变量进行初始化赋值,那么结构照样可以使用。尽管很多人都在争论,认为这种赋值伎俩太不专业且显得有点傻,然而谁也无法找到合情合理的解释,但是这样做的确可行。当我们注释掉赋值语句后,编译器则会报错:使用了未赋值的本地变量s2。

我们还可以使用自定义构造函数并传递一个整型变量来创建结构对象,代码如下:

Student s3 = new Student(90);  Console.WriteLine(s3.GetTot());  Console.WriteLine(s3.GetGrade());

C#结构示例之输出:

270  Brilliant

不像类是引用类型,结构是值类型的,所以结构比类操作起来更简单。当使用类仅存储一些数据时,你会发现使用结构会好得多!结构化数组是在堆上创建的,而以一个一个类的形式来创建对象,则必须提前在堆上分配内存,而且每个类的引用地址也需要额外保存起来,所以使用结构化数组则更加的有效率。实际上在.net框架里大部分类也都是结构,譬如:System.Drawing.Point。

感谢各位的阅读,以上就是“C#结构和类的不同点有哪些”的内容了,经过本文的学习后,相信大家对C#结构和类的不同点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C#结构和类的不同点有哪些

本文链接: https://lsjlt.com/news/294749.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#结构和类的不同点有哪些
    这篇文章主要讲解了“C#结构和类的不同点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#结构和类的不同点有哪些”吧!C#结构是堆栈对象,不能在堆上创建它;C#结构可以继承接口,但是不...
    99+
    2023-06-18
  • C#类和结构有什么不同
    这篇文章主要介绍“C#类和结构有什么不同”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#类和结构有什么不同”文章能帮助大家解决问题。类 vs 结构类和结构有以下几个基本的不同点:类是引用类型,结构...
    99+
    2023-06-17
  • C#结构的特点有哪些
    本文小编为大家详细介绍“C#结构的特点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#结构的特点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。C# 结构的特点您已经用了一个简单的名为 Books ...
    99+
    2023-06-17
  • c语言和php的不同点有哪些
    这篇文章主要讲解了“c语言和php的不同点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言和php的不同点有哪些”吧!一、C语言和PHP的概述C语言是一种通用的高级计算机编程语言,...
    99+
    2023-07-05
  • css3和css的相同点和不同点有哪些
    本文小编为大家详细介绍“css3和css的相同点和不同点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“css3和css的相同点和不同点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • C结构和C++结构之间的区别有哪些
    小编给大家分享一下C结构和C++结构之间的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广...
    99+
    2023-06-14
  • shiro中SecurityManager类的结构有哪些特点
    这篇文章给大家介绍shiro中SecurityManager类的结构有哪些特点,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(一) shiro的SecurityManager类结构为:总结: SecurityManag...
    99+
    2023-05-31
    securitymanager age shiro
  • Java中抽象类和接口的不同点有哪些
    这篇文章主要讲解了“Java中抽象类和接口的不同点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中抽象类和接口的不同点有哪些”吧!在Java语言中, abstract clas...
    99+
    2023-06-17
  • php7和php5有哪些不同点
    这篇文章给大家分享的是有关php7和php5有哪些不同点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php标量类型和返回类型声明#主要分为两种模式,强制性模式和严格模式declare(strict_types=...
    99+
    2023-06-15
  • C++结构体与类的区别有哪些
    这篇文章给大家分享的是有关C++结构体与类的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取...
    99+
    2023-06-25
  • c++中结构体和类之间有何异同
    结构体和类都是 c++ 中的数据集合类型,但有以下异同:访问权限:结构体成员公开,类成员私有。内存布局:结构体成员连续存储,类成员可能分散存储。继承:结构体不支持继承,类支持继承。对象创...
    99+
    2024-05-10
    c++ 作用域 敏感数据
  • C#有哪些常见的数据类型和控制结构
    C#具有许多常见的数据类型和控制结构。以下是其中一些常用的示例:数据类型:整数类型:int、long、short、byte等浮点数类型:float、double、decimal等字符类型:char布尔类型:bool字符串类型:string数...
    99+
    2023-10-22
    C#使用
  • java类和结构体的区别有哪些
    Java类和结构体(Struct)是两种不同的概念,有以下区别:1. 定义方式:Java类是面向对象编程的基本单位,通过class关...
    99+
    2023-09-09
    java
  • volatile和原子类的异同点有哪些
    这篇文章主要讲解了“volatile和原子类的异同点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“volatile和原子类的异同点有哪些”吧!vola...
    99+
    2024-04-02
  • javascript和c语言有哪些不同
    javascript和c语言区别:1.执行方式不同;2.语言类型不同;3.线程的操作方法不同;4.线程的操作方法不同;5.类的继承方式不同;6.闭包方式不同;javascript和c语言区别以下几点执行方式不同javascript是作为脚本...
    99+
    2024-04-02
  • mysql中MyISAM和InnoDB有哪些不同点
    本篇内容介绍了“mysql中MyISAM和InnoDB有哪些不同点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-11-30
    mysql myisam innodb
  • 服务器和云服务器的相同点和不同点有哪些
    云服务器和云服务器是两个不同的概念,它们的相同点和不同点如下: 相同点: - 云服务器都是由云主机或者云计算服务提供商创建,是一个虚拟机,能够在云平台上进行快速、便捷、可靠的计算和存储。 - 云服务器提供高性能、高可用性、高扩展性和弹性等...
    99+
    2023-10-27
    不同点 服务器 相同点
  • Redis支持哪些不同的数据结构
    Redis支持以下不同的数据结构: 字符串(String):最基本的数据结构,可以存储文本、整数或者浮点数。 列表(List...
    99+
    2024-04-09
    Redis
  • python元组和列表的不同点有哪些
    这篇文章主要介绍“python元组和列表的不同点有哪些”,在日常操作中,相信很多人在python元组和列表的不同点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python元组和列表的不同点有哪些”的疑...
    99+
    2023-06-20
  • nodejs与swoole的不同点有哪些
    这篇“nodejs与swoole的不同点有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nodejs与swoole的不同...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作