html5做的篮球网站,做企业网站 asp的cms系统哪个好,做网站初始配置,公司免费取名提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、类#xff08;Class#xff09;二、结构体#xff08;Struct#xff09;示例代码#xff08;定义类和结构体#xff09;类的继承代码示例#xff08… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言一、类Class二、结构体Struct示例代码定义类和结构体类的继承代码示例类的继承 总结 前言
提示这里可以添加本文要记录的大概内容
写单片机习惯了结构体的方式定义数据导致现在写C# 忽略了类的方式定义 一、类Class
引用类型类是引用类型当一个类的实例被创建时变量指向堆上的对象继承类支持继承可以派生自另一个类并且可以实现多个接口。构造函数类可以有无参或有参构造函数默认情况下会有一个无参构造函数。成员访问修饰符类可以包含私有、受保护、公共等不同访问级别的成员。垃圾回收由于类是引用类型所以不再使用的类实例将由CLR的垃圾收集器自动清理。
二、结构体Struct
值类型结构体是值类型意味着它们直接存储数据而不是引用数据的位置。因此当一个结构体实例被赋值给另一个变量时实际上是复制了整个结构体的数据。不支持继承结构体不能从其他类或结构体继承也不能作为其他类型的基类型。但是结构体可以实现接口。构造函数结构体可以拥有有参构造函数但默认情况下不会提供无参构造函数。如果定义了任何构造函数则必须显式地定义无参构造函数。成员访问修饰符结构体也可以包含私有、公共等不同访问级别的成员但是默认字段和事件是私有的。性能因为结构体是值类型所以在某些场景下如频繁创建和销毁的小型数据结构使用结构体可能比使用类更高效。
示例代码定义类和结构体
代码如下示例
// 定义一个类
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 Im {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 Im 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}
}总结
结构体对内存友好用完及时释放但是对面向对象编程不友好当大量数据时操作繁琐复杂不是老手不建议使用类的方式适合面向对象编程特别是处理大量数据的时候更能体现其价值