using
System;
namespace
ValueType
{
class
Program
{
///
<summary>
///
类似Java中的“/**”注释
///
</summary>
///
<param name="
args
"></param>
static
void
Main(
string
[] args)
{
//C#有三种数据类型:值类型、引用类型和指针类型
//值类型 直接存储在栈上面
Console
.WriteLine(
"C#有三种数据类型:值类型、引用类型和指针类型\n值类型 直接存储在栈上面\n\nint类型示例:"
);
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(
"\nboolean类型示例"
);
bool
aBooleanType =
true
;
//变量命名方法同Java
Console
.WriteLine(
"输出布尔真:"
+ aBooleanType +
", 输出类型:"
+ aBooleanType.GetType());
//struct类型,及调用方式
Console
.WriteLine(
"\nstruct类型示例:"
);
Person
person =
new
Person
();
person.age = 10;
Console
.WriteLine(
"使用person.age = 10;来给person的age属性赋值"
);
Console
.WriteLine(
"输出person.age:"
+ person.age);
Console
.WriteLine(
"\nenum类型示例:"
);
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开始\nDays1.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开始
}
}
执行结果