using System;
namespace ValueType
{
class Program
{
/// <summary>
/// 类似Java中的“/**”注释
/// </summary>
/// <param name=" args"></param>
static void Main(string[] args)
{
//C#有三种数据类型:值类型、引用类型和指针类型
//值类型 直接存储在栈上面
int i = 0;//int只是别名,正式写法为System.Int32, 按F12可以查看定义区
//等价于System.Int32 i = 0;
//等价于 int i; 因为int默认值为0
bool aBooleanType = true ;//变量命名方法同Java
//struct类型,及调用方式
Person person = new Person();
person.age = 10;
Console.WriteLine(person.age);
Console.WriteLine(Days .Monday);
var day = Days .Sunday;//定义任何类型的变量都可以用var来代替,这样就可以在定义时不去管它是什么类型,在用到的时候该变量会自动变成对应的类型
Console.WriteLine(day);
Console.WriteLine((int )day);
//枚举类默认是从0开始的,也可以通过设置Monday = 1来设置从1开始
Console.WriteLine(Days1 .Sunday);
Console.WriteLine((byte )Days1.Sunday);
Console.ReadLine();
/*其他值类型还有
enum 枚举类型
这些值类型都继承于System.ValueType,System.ValueType又继承于System.Object类
System.Object所有的类都会继承于System.Object*/
}
/*struct类示例
用来打包封装一个小的数据集,在里面可以像class一样实现方法、事件。*/
struct Person
{
//顺便介绍四大访问修饰符
public int age;//public访问修饰符 对外可见到
public string name;//private访问修饰符
public string firstName;//internal访问修饰符 命名空间内可见
public string lastName;//protected访问修饰符 只有其继承类可见
}
/*enum枚举类型示例
用来限定变量的一个取值范围
例如这里限定了天这个变量只可能有周一到周日这七个值*/
enum Days { Monday, Tuesday, Wenesday, Thursday, Friday, Saturday, Sunday} //默认是整数类型的,也可以在定义时加入":"改变它的类型,例如改成byte类型:
enum Days1 : byte { Monday = 1, Tuesday, Wenesday, Thursday, Friday, Saturday, Sunday } //默认是从0开始的,也可以通过设置Monday=1来设置从1开始
}
}
执行结果