结构体,枚举,类
结构体
枚举
类
结构体
在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。
结构
struct 名称
{
访问权限 类型 名称
}
试用
namespace ConsoleApp10
{
internal class Program
{
struct person
{
public int id;
public string name;
public int age;
}
static void Main(string[] args)
{
person x = new person();
x.id = 1;
x.age = 15;
x.name = "xiaomign";
Console.WriteLine(x.id);
Console.WriteLine(x.name);
Console.WriteLine(x.age);
Console.ReadLine();
}
}
}
结构的特点
- 结构可带有方法、字段、索引、属性、运算符方法和事件。
- 结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义无参构造函数。无参构造函数(默认)是自动定义的,且不能被改变。
- 与类不同,结构不能继承其他的结构或类。
- 结构不能作为其他结构或类的基础结构。
- 结构可实现一个或多个接口。
- 结构成员不能指定为 abstract、virtual 或 protected。
- 当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
- 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。
由以上特点可得
namespace ConsoleApp10
{
internal class Program
{
struct person
{
public int id;
public string name;
public int age;
public void get(int id, string name, int age)
{
this.id = id;
this.name = name;
this.age = age;
}
public void put()
{
Console.WriteLine("id为{0}",id);
Console.WriteLine("name为{0}",name);
Console.WriteLine("age为{0}",age);
}
}
static void Main(string[] args)
{
person x = new person();
x.get(321, "xiaoming", 15);
x.put();
Console.ReadLine();
}
}
}
枚举
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。
C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。
结构
enum <enum_name>
{
enumeration list
};
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0,可以为枚举列表内的符号赋值。
试用
namespace ConsoleApp10
{
internal class Program
{
enum person
{
blackman,blackwoman=5,writeman,whitewoman
}
static void Main(string[] args)
{
int x = (int)person.blackman;
int y = (int)person.whitewoman;
Console.WriteLine(person.blackman);
Console.WriteLine(x);
Console.WriteLine(y);
Console.ReadKey();
}
}
}
类
当你定义一个类时,你定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。对象是类的实例。构成类的方法和变量称为类的成员。
试用
namespace ConsoleApp10
{
internal class Program
{
class person
{
public int age;
public string name;
private int money;
public void set(int money)
{
this.money = money;
}
public void put1()
{
Console.WriteLine("money为{0}",money);
}
public void put2()
{
Console.WriteLine("age为{0}",age);
Console.WriteLine("name为{0}",name);
}
}
static void Main(string[] args)
{
person x = new person();
x.name = "xiaoming";
x.age = 15;
x.set(10000);
x.put1();
x.put2();
Console.ReadKey();
}
}
}