using System;
namespace ValueType
{
class Program
{
/// <summary>
/// 类似Java中的“/**”注释
/// </summary>
/// <param name=" args"></param>
static void Main(string[] args)
{
//C#有三种数据类型:值类型、引用类型和指针类型
//值类型 直接存储在栈上面
Console.WriteLine("C#有三种数据类型:值类型、引用类型和指针类型
值类型 直接存储在栈上面
int类型示例:" );
int i = 0;//int只是别名,正式写法为System.Int32, 按F12可以查看定义区
Console.WriteLine("i = " + i + ", i的类型:" + i.GetType());
System. Int32 i2 = 0;
Console.WriteLine("int i等价于System.Int32 i" );
Console.WriteLine("i2 = " + i2 + ", i2的类型:" + i2.GetType());
Console.WriteLine(i2);
Console.WriteLine("
boolean类型示例" );
bool aBooleanType = true ;//变量命名方法同Java
Console.WriteLine("输出布尔真:" + aBooleanType + ", 输出类型:" + aBooleanType.GetType());
//struct类型,及调用方式
Console.WriteLine("
struct类型示例:" );
Person person = new Person();
person.age = 10;
Console.WriteLine("使用person.age = 10;来给person的age属性赋值" );
Console.WriteLine("输出person.age:" + person.age);
Console.WriteLine("
enum类型示例:" );
Console.WriteLine("Days.Monday = " + Days.Monday);
var day = Days .Sunday;//定义任何类型的变量都可以用var来代替,这样就可以在定义时不去管它是什么类型,在用到的时候该变量会自动变成对应的类型
Console.WriteLine("Days.Sunday = " + day);
Console.WriteLine("Days.Sunday默认值:" + (int)day + "(int)");
//枚举类默认是从0开始的,也可以通过设置Monday = 1来设置从1开始
Console.WriteLine("Days1.Sunday = " + Days1.Sunday);
Console.WriteLine("可以通过设置Monday = 1来设置从1开始
Days1.Sunday默认值:" + (byte)Days1 .Sunday + "(byte)");
Console.ReadLine();
/*这些值类型都继承于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开始
}
}
执行结果