当前位置: 首页 > news >正文

网站建设及管理深圳设计网

网站建设及管理,深圳设计网,国外素材网pinterest,网站建设公司排名提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、类(Class)二、结构体(Struct)示例代码(定义类和结构体)类的继承代码示例&#xff08…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、类(Class)
  • 二、结构体(Struct)
  • 示例代码(定义类和结构体)
  • 类的继承
    • 代码示例(类的继承)
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

写单片机习惯了结构体的方式定义数据;导致现在写C# 忽略了类的方式定义


一、类(Class)

  1. 引用类型:类是引用类型,当一个类的实例被创建时,变量指向堆上的对象
  2. 继承:类支持继承,可以派生自另一个类,并且可以实现多个接口。
  3. 构造函数:类可以有无参或有参构造函数,默认情况下会有一个无参构造函数。
  4. 成员访问修饰符:类可以包含私有、受保护、公共等不同访问级别的成员。
  5. 垃圾回收:由于类是引用类型,所以不再使用的类实例将由CLR的垃圾收集器自动清理。

二、结构体(Struct)

  1. 值类型:结构体是值类型,意味着它们直接存储数据,而不是引用数据的位置。因此,当一个结构体实例被赋值给另一个变量时,实际上是复制了整个结构体的数据。
  2. 不支持继承:结构体不能从其他类或结构体继承,也不能作为其他类型的基类型。但是,结构体可以实现接口。
  3. 构造函数:结构体可以拥有有参构造函数,但默认情况下不会提供无参构造函数。如果定义了任何构造函数,则必须显式地定义无参构造函数。
  4. 成员访问修饰符:结构体也可以包含私有、公共等不同访问级别的成员,但是默认字段和事件是私有的。
  5. 性能:因为结构体是值类型,所以在某些场景下(如频繁创建和销毁的小型数据结构),使用结构体可能比使用类更高效。

示例代码(定义类和结构体)

代码如下(示例):

// 定义一个类
public class Person
{public string Name { get; set; }public int Age { get; set; }// 构造函数public Person(string name, int age){Name = name;Age = age;}// 方法public void Introduce(){Console.WriteLine($"Hello, my name is {Name} and I'm {Age} years old.");}
}// 定义一个结构体
public struct Point
{public int X { get; set; }public int Y { get; set; }// 构造函数public Point(int x, int y){X = x;Y = y;}// 方法public void PrintPoint(){Console.WriteLine($"Point: ({X}, {Y})");}
}class Program
{static void Main(string[] args){// 使用类Person person1 = new Person("Alice", 30);Person person2 = person1;person2.Age = 35;person1.Introduce(); // 输出 "Hello, my name is Alice and I'm 35 years old."// 使用结构体Point point1 = new Point(1, 2);Point point2 = point1;point2.Y = 10;point1.PrintPoint(); // 输出 "Point: (1, 2)"point2.PrintPoint(); // 输出 "Point: (1, 10)"}
}

类的继承

C#中的类的继承是指一个类(派生类)从另一个类(基类)中继承属性和方法。这允许代码的重用和扩展,使派生类可以继承基类的特性,并在其基础上添加或覆盖特定的行为。

代码示例(类的继承)

// 基类
public class Animal
{public string Name { get; set; }public void Speak(){Console.WriteLine("Animal speaks");}
}// 派生类
public class Dog : Animal
{public string Breed { get; set; }public new void Speak(){Console.WriteLine("Dog barks");}
}// 另一个派生类
public class Cat : Animal
{public string Color { get; set; }public void Meow(){Console.WriteLine("Cat meows");}
}// 程序入口
class Program
{static void Main(string[] args){// 创建一个Dog对象Dog myDog = new Dog();myDog.Name = "Fido";myDog.Breed = "Golden Retriever";// 调用基类的Speak方法myDog.Speak(); // 输出: Dog barks// 创建一个Cat对象Cat myCat = new Cat();myCat.Name = "Kitty";myCat.Color = "White";// 调用基类的Speak方法myCat.Speak(); // 输出: Animal speaks// 调用派生类的Meow方法myCat.Meow(); // 输出: Cat meows}
}

总结

结构体对内存友好,用完及时释放,但是对面向对象编程不友好,当大量数据时操作繁琐复杂(不是老手不建议使用);类的方式适合面向对象编程,特别是处理大量数据的时候更能体现其价值;

http://www.yayakq.cn/news/737381/

相关文章:

  • 网站建设论文文献wordpress搬到本地
  • 公司网站建设费用 知乎电商网站建设图片
  • 网站建设的流程推广方案百度怎样可以搜到自己的网站
  • 济宁网站建设案例展示备案网站域名和主机关系
  • 请简述网站建设的方法镇江网站关键词
  • 网站后台无法审核手机兼职的正规平台有哪些
  • wordpress首页视频主题seo关键词排名实用软件
  • 三门峡 网站开发网站开发可选的方案有
  • 网站流量如何转化为钱西安工程网站建设
  • 网站建设 应酷深圳的网站建设
  • 网站建设和推广的完整话术郑州专业做网站的公司
  • 常德网站建设套餐报价网站前台 后台
  • 网站服务器价格织梦网站专题模板
  • 定制型网站一般价格可以在哪些网站 app做推广的
  • 网站备案流程审核单搜索引擎技术基础
  • 自助网站建设软件wordpress 网站生成app
  • 网站平台建立金融公司网站方案
  • 做柱状图 饼状图的网站石家庄局域网网站建设
  • 网站开发毕业生报告网站的设计要素
  • 网站媒体给房开做内容推广网页设计图片加载不出
  • 淘宝客怎样建设网站望江县建设局网站
  • 如何把网站上传到网上做艺术品的网站有哪些
  • 做搬家网站推广在那好企业宣传片拍摄脚本
  • 微官网和微网站首页徐州网站设计师
  • GTA5浏览器网站建设中做的网站打印全乱掉了
  • 网站服务器怎么查询app下载汅api未满入内
  • 东莞网站建设品牌建设通网站首页
  • 网站推广在哪好外贸备案的网站如何访问
  • 对电子商务网站建设与维护的总结网站开发项目比赛
  • 所有北京网站建设公司附近找工作招聘信息