c#之初识结构(Struct)

C# 结构(Struct)

  首先结构是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构。通俗说:结构就是一个可以包含不同数据类型的集合。它是一种可以自己定义的数据类型。

  枚举和结构全是值类型,枚举一般是现实生活中问题的“直译”,易于理解比较直观,其次枚举类型则可以将一个类型限制在可控制的范围内。而结构呢?结构使处理不同的数据类型的集合变的简单,比如登记100个学生的信息。

  比如定义学生信息的结构如下: 初始化赋值注意事项以后再学习

1     public struct MyStruct          //我的学生
2     {
3         public string Name;         //名字
4         public string MobilePhone;  //移动电话
5         public DateTime Birthday;   //生日
6     }

  再声明张飞的信息如下,那声明100个学生的信息就简单了。

1             MyStruct P1;
2             P1.Name = "张飞";
3             P1.MobilePhone = "15358905577";
4             P1.Birthday = DateTime.Now.AddYears(-33);

  结构变量可以赋值给相同结构变量,将同时复制该结构变量所持有的所有数据,如下再声明个学生信息变量代码如下,P2将的到P1的所有的数据类型。

1             MyStruct P1;
2             MyStruct P2;
3             P1.Name = "张飞";
4             P1.MobilePhone = "15358905577";
5             P1.Birthday = DateTime.Now.AddYears(-33);
6             //将p1的值赋给p2   //由于是值类型,因此赋值等于将全部值全部复制到p2的栈空间
7             P2 = P1;
时间: 2024-10-20 20:55:59

c#之初识结构(Struct)的相关文章

C# 结构struct总结

C# 结构struct总结 1.结构是值类型,而且是密封的,不能继承和派生. 2.结构申明: struct StructName { MemberDeclaration } struct Point { public int x ;  //结构中字段初始化是不允许的 pub int y ; } 3.结构具有以下特点 (1)结构与类非常类似,但是结构是值类型,类是引用类型. (2)结构实例化可以不适用new运算符.但是在显示设置数据成员之后,才能调用他们的值. (3)系统已经为结构提供一个隐式构造

使用结构struct作为Dictionary<TKey,TValue>的键

我们经常用简单数据类型,比如int作为泛型Dictionary<TKey,TValue>的key,但有时候我们希望自定义数据类型作为Dictionary<TKey,TValue>的key,如何做到? 如果我们想自定义一个struct类型作为key,就必须针对该struct定义一个实现IEqualityComparer<T>接口的比较类,实现该接口的2个方法:Equals()方法和GetHashCode()方法,前者用来比较两个key是否相等,后者用来获取key的哈希值.

结构 struct

结构是使用struct关键字定义的 结构与类相似,但有两大区别: 1.结构属于值类型,而类属于引用类型; 2.结构是隐式密封的,也就是不可继承的,而一般的类不是隐式密封的. 其他区别: 3.结构中不能再定义无参数构造函数或析构函数,而类中可以 4.结构中普通字段不能直接赋值,只有声明为static或const的字段可以直接赋值(初始化) 5.结构的实例化可以不使用new运算符 结构可以实现接口.

结构struct

1.结构变量 1)定义结构类型 struct student { char *name; int age; int score[3]; }; 2)定义结构变量 struct student stu1, stu2, *ps, stu[30]; 3)结构变量的成员表示 一般结构变量的成员:stu1.name 指向结构变量的指针成员:ps->name 结构数组元素的成员:stu[0].name 4)结构变量可以被赋初值,也可以被赋值 struct student stu1 = {"wang&qu

从结构struct谈到类class(基于C++实现)

深入理解struct 在C语言中,我们通常使用struct来表示不同数据类型的结合.当然我们也可以在struct中定义函数,在C++中,这是允许的但是不提倡使用,因为有一个比它更好使用的复杂数据类型,叫做类(这在稍后做出介绍). 使用struct的时候有一个问题:在进行一个比较大的项目工程的时候,我们的数据结构的定义和使用可能在不同的文件中,当我们修改了数据结构中的某个成员,那么,使用该数据结构的函数必须修改,而我们并不知道拿下函数使用该种数据结构,这时候我们怎么做?答案很简单,在函数定义的时候

C#_基础_结构Struct(八)

一般情况下,不建议使用结构. 结构中可以包含多种不同类型的字段,方法 定义一个结构: 1 public struct Person 2 { 3 public string _name;//命名规范字段前前加下划线 4 public int _age; 5 public char _gender; 6 public QQState _state; //枚举类型 7 } 结构声明:调用 1 //声明结构变量,实质上和枚举一样,int 都是变量, 2 Person zhangsan; 3 zhangs

详说C#中的结构struct

一.结构和类的区别 1.结构的级别和类一致,写在命名空间下面,可以定义字段.属性.方法.构造方法也可以通过关键字new创建对象. 2.结构中的字段不能赋初始值. 3.无参数的构造函数无论如何C#编译器都会自动生成,所以不能为结构定义一个无参构造函数. 4.在构造函数中,必须给结构体的所有字段赋值. 5.在构造函数中,为属性赋值,不认为是对字段赋值,因为属性不一定是去操作字段. 6.结构是值类型,在传递结构变量的时候,会将结构对象里的每一个字段复制一份拷贝到新的结构变量的字段中. 7.不能定义自动

初识结构体

Q:距离排序 总时间限制: 1000ms 内存限制: 65536kB 描述 给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离. 输入 输入包括两行,第一行包含一个整数n表示点的个数,第二行包含每个点的坐标(坐标都是整数).点的坐标的范围是0到100,输入数据中不存在坐标相同的点. 输出 对于大小为n的输入数据,输出n*(n-1)/2行格式如下的距离信息: (x1,y1,z1)-(x2,y2,z2)=距离 其中距离保留到数点后面

C#中结构(struct)的部分初始化和完全初始化

假设有这样一个值类型struct. public struct Size { public int Length; public int Width; public int Area() { return Length*Width; } } □ 客户端,给所有struct字段初始化后调用方法 class Program { static void Main(string[] args) { Size size; size.Length = 10; size.Width = 5; Console.