C#软件上

搭建开发环境

1.C#概述

1.1 C#语言的特点

C#是一门面向对象的语言,是需要通过编译器编译的语言,在.net平台运行的

1.2 net平台是什么?

.net是一款免费的开源平台,可以生成不同应用,web应用/桌面开发/游戏......

1.3 C#的应用领域

web应用: 浏览器网站

桌面应用: Windows程序,Linux程序,MacOS程序

游戏应用: Unity框架

服务应用: 构建应用服务器

C#人工智能: 视觉 模型

1.4 开发环境

  1. 安装开发者工具 Visual Studio 2022
  2. 2022下载链接
  3. 具体安装步骤

2.数据

2.1 什么是数据?


2.2 C#如何处理数据的?

  1. 通过表达式对数据进行运算处理
  2. 用变量将数据存储在与运行内存中
  3. 编程语言如何管理程序产生的数据
  4. 通过数据类型分类方式,对数据进行存储.以及分类管理

3.变量

3.1.作用

从程序执行的角度:变量作用:存储程序运行时产生的数据.理解为:保存表达式运算结果

从栈内存的角度:定义的变量为栈中的key,value为保存的数据

3.2.定义

  1. 语法

Type VarName = Value

  • Type 数据类型
  • VarName 变量名
  • Value 值

  2.变量名命名规则

大驼峰:数组字母下划线

不能以数组开头

3.3变量作用域

变量作用域:在代码块中声明的变量,能够在哪里使用,简单理解:变量作用域决定了变量访问的权限

规则细节:

在哪个代码块{}中定义的变量,只能在代码块内部使用;

for()小括号与循环体中定义的变量,只能在for中使用

if else Switch 中定义的变量,只能在分支语句内部使用

内层代码块可以访问外层代码块中变量

类中定义的static public 变量可以在全局中使用(全局:当前工程下所有.cs文件)

函数中定义的变量,只能在函数内部使用,不同函数之间,变量不可以相互访问

3.4.变量的使用规则

1.第一步:看通过什么方式访问的变量?

1.只有变量名

2.类名.变量名

3.变量名.变量名

1.如果是只有变量名 在当前代码块中查找,按照编写方式往上找,看是否声明变量,如果没有继续看外层代码块,直到类的代码块为止.如果都没有,报错;如果找到了,那么使用的是该变量距离使用时最近的一次赋值,[看最近=赋值运算符]

2.如果是 类名.变量名; 直接去该类中查看是否有: static public Type VarName; 没有:报错,有:使用的是该变量,注意:使用的为 该变量 最近一次运算的赋值,[看的表示赋值运算符][看的是上一次运算结果]

3.如果是只有变量名.变量名是访问实例对象上属性的值;

4.看实例对象的类是否存在

5.看是哪个对象上的属性

6.看该对象的属性最近的赋值运算符

3.5.常量

1.语法

const Type VarName = Value

  • const 定义的常量
  • Type 数据类型
  • VarName 变量名
  • Value 值

2.特点

只能赋值一次

3.应用

  1. 固定不变的地址:工业相机lp地址 线上服务器地址
  2. 配置参数: Plc 西门子 三菱 欧姆龙 等配置信息

4.数据类型

4.1 值类型

1.分类

整形: byte ubyte short int long

浮点型: float double双精准 decimal 128位的精准数字

字符型: char

布尔值: bool

2.作用

  • 整形与浮点型用于描述数字
  • 字符型用于描述单个字符,单个字符可以被ASCI编码为具体的数字
  • 布尔值 用于控制 某个代码块是否执行:例如:分支 循环

3.存储位置

存储在栈内存中,值类型的拷贝,变量拷贝的是值,不是地址

4.区分方式

  • 整形区别: 1.占据内存空间大小不同 2.数值的范围不同

5.注意

注意:变量赋值值类型,表示:该变量存储一个数组. 注意与变量赋值引用类型意义上区别

4.2 引用类型

1.根据索引值的类型划分:

1 有索引值的类型

字符串: Array ArrayList SortList

特点:

  1. 索引值从0开始的
  2. 索引值是唯一的
  3. 每个索引值都会对应一个元素
  4. 通过索引值获取value的方式; data[索引值]

2 键值对的类型

HashTable

SortList

自定义对象

键值对结构特点:

  1. key 键 是唯一的,重复报错
  2. key 一般为string,可以为其他类型, int double char
  3. key value 成对存在的,可以通过key 找到value的

3总结:

  1. 字符串 String
  2. 数组 Array
  3. 集合 ArrayList/HashTable/SortList/Stack/Queue
  4. 对象 class/object
  5. 结构体 stuct

4.3 枚举型

1.语法

修饰符 enum 枚举名{

枚举值,

枚举值,

}

枚举名 变量名 = 枚举名.枚举值

int num = (int)枚举名; 枚举值对应的数字

枚举名 变量名 = ()枚举名).数字 数字对应的枚举

  • 修饰符: 作用: 约束枚举使用范围
  • enmu 作用: 创建枚举
  • 枚举名: 自定义的, 开头字母大写, 大驼峰
  • 枚举值: 根据业务实际应用场景取名, 注意: 枚举值是枚举类型

2.案例代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 枚举
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Day day = Day.Monday;
            Console.WriteLine(day);
            Console.WriteLine((int)day);//枚举转整数
            Console.WriteLine((Day)1);//整数转枚举
            Console.WriteLine((Day)100);//超出枚举范围会报错
            Console.ReadKey();
            /// 枚举值:有两面: 1.枚举值(你写的) 2.数字
            /// 每个枚举值都有一个默认的数字,默认从0开始 或者自定义数字
            /// 应用: 视觉工具的下拉框,用枚举值类型

        }
    }
   public enum Day
    {
            Monday,Tuesday,Wednesday,Thursday,Friday=99,Saturday,Sunday
/*自定义数组: 定义前数组元素不受影响,定义后的数组元素受影响*/
    }
}

3.特点

1.枚举类型有两个值,一个是:枚举值(我们自己写的) 另一个是:每个枚举值对应一个数字

5.表达式与运算符

5.1 运算符分类

  • 算数运算符 + - * / % ++ --
  • 比较运算符 < > <= >= == !=
  • 逻辑运算符 && || !
  • 赋值运算符 = += -= %= *=
  • 连接运算符 +
  1. 当加号遇到字符串,作用就是拼接字符串; 结果: string
  2. 赋值给变量赋值的. 不会产生新的数据
  3. 注意在条件表达式中,不要把等于写成赋值

5.2 运算符优先级

你希望哪两个操作先运算; 就用小括号括起来

运算结果与最后运算的运算符有关

5.3 运算符运算注意事项

1:如果表达式中出现逻辑运算符或者比较运算符,运算结果一定是布尔类型

2: 不同数据类型之间运算:无法发生隐士转化的数据类型之间不能运算

3:其他值类型和字符串遇到加号后,都会变为字符串

5.4 什么是表达式

操作数和运算符 形成表达式

特殊表达式:函数表达式,, 重点 : 掌握函数表达式运算过程

什么时候写表达式?

拆分业务后,将业务分析为n个步骤后,开始写表达式了.

5.5 表达式特点

表达式一定有返回结果,产生新的数据

6.数据类型转化

不同数据类型之间转化不报错前提,数据类型之间有点关系

6.1隐士转化

  1. 特点: 小范围转化大范围(内存空间大小,最大值最小值范围) 例如: int转double char转int
  2. 注意: 指发生在值类型之间.
  3. 发生情况: 遇到运算符的时候,才会发生转化

6.2显示转化

  1. 需要在代码中明确声明转化的类型.
  2. 容易丢失精准度: 例如 double转int
  3. 语法 : (Type)数据;
  4. 不是所有的数据类型之间都可以显示转化. 值类型或者枚举值可以显示转化

6.3装箱和拆箱

装箱: 一个值类型转化为引用类型的过程叫做装箱

int a = 123;
object b = (object)a;

拆箱: 引用类型转化为值类型的过程叫做拆箱

object a = 123;
int b = (int)a;

6.4强制转化

  1. Parase
  2. Cpnvent
  3. api.
  • 27
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值