这是本文档旧的修订版!
<markdown> # 变量作用域使用范围
一个类里面定义的变量不能在该类之外使用
除非使用静态修饰[变量的修饰符、默认私有]
# 变量类型 ## 类型种类 </markdown>
<markdown> - 值类型:值存在栈上
- 引用类型:值存在堆上
- 指针类型:需打开安全模式
## 值类型范围
</markdown>
<markdown>
### 浮点数类型注意
浮点数后没有f默认为double 类型 float不能定义
## 引用类型
## 引用类型的理解1
区别:
1:创建的值类型存在栈里、
2:创建的引用类型是对象存在栈、存在值是指向堆里、
[2:创建的引用类型变量是栈、值存在堆里、]
总结:使用值类型时对一个变量的修改不会影响其他的值、
而使用引用类型时、你对一个引用类型变量的值进行修改、会影响到与它相同引用的其他变量的值、
引用类型的理解2
考虑以下打印的值
```csharp class ceshi {
public string name { get; set; }
public int age { get; set; }
} static class tes {
public static void fangcon()
{
ceshi Stime1 = new ceshi() { name = "A", age = 25 };
ceshi Stime2 = new ceshi() { name = "B", age = 30 };
int age = Stime1.age;
Stime1.age = 35 ;
ceshi Stime3 = Stime2; Stime2.name = "C";
Console.WriteLine("Stime1 age 的值 :" + Stime1.age);
Console.WriteLine("局部变量 age 的值 :" + age);
Console.WriteLine("Stime2 age 的值 :" + Stime2.name);
Console.WriteLine("Stime3 age 的值 :" + Stime3.name);
}
}
```
总结:使用值类型时对一个变量的修改不会影响其他的值、
而使用引用类型时、你对一个引用类型变量的值进行修改、会影响到与它相同引用的其他变量的值、
### 引用类型、通用类型object
``` object num1 = 3.14; object num2 = “工控机”; object num3 = 145; ```
### 类的引用与绑定理解
使用fuka对象就等于使用zhuka对象成员
### 指针类型
## 自定义变量类型[枚举enum]
### 简介
枚举里定义的成员变量为 整型常亮
使用定义枚举变量时、必须为它赋一个枚举内部值、
枚举可以当做参数来传递
### 使用步骤
1:创建枚举类型、写出包含的成员变量
2:用创建枚举类型定义变量、此时该变量拥有枚举内的成员
### 枚举案例1
枚举是一种值类型,它由一组命名的常数组成。这些常数被称为枚举成员。枚举提供了一种方便的方式来定义和使用一组相关的常量值。
创建枚举类型 ``` public enum DaysOfWeek { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } ``` 定义了一个名为`DaysOfWeek`的枚举,包含了一周中的每一天。 可以像使用其他数据类型一样使用这个枚举: 定义枚举类型变量并赋值[赋内部的值、自定义]
``` DaysOfWeek today = DaysOfWeek.Monday;
if (today == DaysOfWeek.Saturday || today == DaysOfWeek.Sunday) {
Console.WriteLine("It's weekend!");
} else {
Console.WriteLine("It's a weekday.");
} ```
在这个示例中将`today`变量设置为`DaysOfWeek.Monday`,然后使用条件语句检查今天是否是周末。
### 枚举案例2
假设有一个名为`Operations`的枚举,用于表示不同的数学运算:
``` public enum Operations {
Add, Subtract, Multiply, Divide
} ```
我们可以使用这个枚举来定义一个函数,该函数根据传入的操作执行相应的数学运算:
```csharp
定义一个返回值是double 、参数1与2为double 类型、与参数3为枚举类型的静态函数
public static double PerformOperation(double num1, double num2, Operations operation)
switch (operation)
{
case Operations.Add:
return num1 + num2;
case Operations.Subtract:
return num1 - num2;
case Operations.Multiply:
return num1 * num2;
case Operations.Divide:
if (num2 != 0)
return num1 / num2;
else
throw new ArgumentException(“Cannot divide by zero.”);
default:
throw new ArgumentException(“Invalid operation.”);
}
}
```
在这个示例中,我们定义了一个名为`PerformOperation`的函数,它接受两个数字和一个操作作为参数。然后,根据传入的操作,函数执行相应的数学运算并返回结果。如果传入的操作无效或除数为零,则抛出异常。
## 结构体[struct ]
### 简介
理解为一个新的数据类型
```
struct Axis 轴结构体
{
public string Axis_num { get; set; } //轴号
public string Jog_Z { get; set; };//轴号Jog_+
public string Jog_F { get; set; };//轴号Jog_-
public double Vosti { get; set; };//轴速度
public double Add_Vosti { get; set; };//轴加速度
public double Add_Vosti_time { get; set; };//轴加速度时间
}
```
### 使用步骤
## 结构体与枚举的区别
1:枚举里定义的成员变量为整型常量、是一种描述性的词、 2:结构体是一种重新规划的类型集合群、
</markdown>








