C#学习篇之基础回顾(2)----- 结构体
程序员文章站
2022-06-13 21:03:34
...
结构体(struct)可以使得单一变量绑定多种数据类型的相关数据,是值类型数据结构。
如定义书的变量,可以绑定多种数据类型,包括书的编号、标题以及作者等信息:
struct Books
{
public int id;
public string title;
public string author;
}
……
Books b;
b.id = 100001;
b.title = "C# Study";
b.author = "me";
结构体与类的区别
-
结构体是值类型,类是引用类型。
-
结构体不能直接实例属性或者给字段设置初始值,类可以。
-
结构体不能被继承,类可以。
-
结构体初始化的时候可以不加New,类必须加New。
-
结构体不能声明默认(无参数)构造函数,类可以。
初始化结构体
初始化结构体需要注意的是,结构体虽然无法声明默认(无参数)构造函数,但是可以直接通过隐式默认(无参数)构造函数、带参构造函数、对象初始值设定项来初始化结构体,什么意思呢,我们可以看一下例子:
struct Books
{
public int id;
public string title;
public string author;
//带参构造函数
public Books(int i, string t, string a)
{
id = i;
title = t;
author = a;
}
}
static class Program
{
static void Main(string[] args)
{
Books a = new Books();//隐式默认(无参数)构造函数
Books b = new Books(100001, "C# Study", "me");//带参构造函数
Books c = new Books { id = 100002, title = "C# Study", author = "me" };//对象初始值设定项
Console.WriteLine("{0},{1},{2}", b.id, b.title, b.author);
Console.WriteLine("{0},{1},{2}", c.id, c.title, c.author);
Console.ReadKey();
}
}
运行结果:100001,C# Study,me
100002,C# Study,me
上面的程序运行当然是没问题的,我们可以看到,结构体中声明的带参构造函数必须要给结构体中所有的成员赋值,否则编译的时候就会报错,提示“在控制返回调用方之前,字段“Books.author”必须完全赋值”。
上一篇: java 拼接头像9宫格
下一篇: 微信小程序接口对接,java后端