C#工控上位机开发-->1、C#快速编程入门

2023-05-16

学习目标:

  • 一、控制台的输入输出
  • 二、C#中的变量使用
  • 三、字符串的拼接与格式化的三种方式
  • 四、数据类型转换的三种方式

学习内容:

  1. 1 控制台的输入输出

(1)输入方法:Console.Read();不会换行的输入,Console.ReadLine();会在执行时换行的输入。

(2)输出方法: Console.Write();不会换行的输出,Console.WriteLine();会在执行时换行的输出。 

(3)控制台闪退问题的解决办法:在Main()方法中,程序执行的后面加上Consoel.Read()/Console.ReadLine();方法,这样会等待用户输入,而不是执行完程序后直接结束控制台。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fish.Study1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Read();//防止控制台程序运行时的闪退问题,这里执行完程序时等待用户输入
        }
        static void  Test1()
        {
            Console.WriteLine("我们正在学习C#快速入门!"); //输出换行
            Console.Write("我们正在学习C#快速入门!");//输出不换行
        }
        static void Test2()
        {
            Console.Write("请输入PLC的类型!");
            string plcType = Console.ReadLine();
            Console.WriteLine("请输入PLC的协议类型!");
            string commType = Console.ReadLine();
            Console.WriteLine(plcType + "的PLC的协议有:" + commType);

        }

    }
}

2. 1 理解变量

变量的概念:在计算机的内存中,每个区域都是由16进制的方式划分的,不方便阅读和记忆,所以需要给内存地址一个别名,方便开发者阅读和区分,这个就是变量。

2.2 变量的声明和赋值

三要素:数据类型 + 变量名称 =变量赋值

例如:int studentId =20221108;

           string studentName="Fish";


        #region 2、变量的使用
        static void Test3()
        {
            int studentId;//变量的声明
            studentId = 20221108;//变量的赋值
            string studentName = "Fish";//在声明变量的同时可以给变量赋值。
            Console.WriteLine("学生姓名:" + studentName + "学号:" + studentId);
        }
        #endregion

2.3  变量的命名规范

(1)命名组成:字母(A~Z,a~z);数字(0~9),下划线(_),其他一切皆不可用;

(2)变量名称开头:必须以字母或者下滑线开头。studentName  _studentId.

(3)禁用命名:C#中的关键子(class,this,new,.......)原因:一个班级里面同名同姓的人,老师提问喊名字,会有两个人同时站起来,互相看着对方,在质疑老师喊谁!

(4)命名有意义:尽量不随意取名字,最好达到看名就知道意思,方便阅读;(除非循环计数等场合可以使用单个字母)

(5)大小写:严格区分

(6)规范:Camel命名法,也叫驼峰命名法,变量首字母小写,后面有意义的单词首字母大写。

(7)局部变量:只在一定范围内可以使用的变量。

(8)成员变量:可以在整个类里面调用的变量,也叫做全局变量。

2.4 变量使用的常见错误

(1)没有声明直接使用,鼠标放在红色波浪线会提示“找不到变量。。。。”类似的错误提示。

(2)没有赋值直接使用。

(3)重复定义同一名称的变量,使用C#中的关键字命名。

3.1 字符串的拼接

(1)普通拼接使用“+”连接符,在拼接字符串时的“+”不是数学计算中的加法;

(2)数字占位符拼接{0} {1} {2};

(3)“$"变量占位符,这个使用比较方便,建议使用。

 #region 3、字符串拼接的三种方式
        static void Test4()
        {
            Console.WriteLine("请输入学生姓名:");
            string studentName = Console.ReadLine();
            Console.WriteLine("请输入学生学号:");
            int studentId = Convert.ToInt32 ( Console.ReadLine());

            //普通拼接
            string result1 = "这个学生叫:" + studentName + "他的学号是:" + studentId;
            //数字占位符的方式
            string result2 = string.Format("这个学生叫: {0} 他的学号是:{1}", studentName, studentId);
            //变量占位符连接
            string result3 = $"这个学生叫:{studentName }他的学号是:{studentId }";

            //输出
            Console.WriteLine(result1);
            Console.WriteLine(result2);
            Console.WriteLine(result3);

        }
        #endregion

4.1 数据类型的转换

(1)自动转换

条件:两种类型必须值类型     必须是小类型转换为大类型,例如 int-->double;

(2)强制类型转换(字符串到值类型)

条件: 字符串必须是值类型的有效形式;

(3)完能转换(Convert.)

 #region 4、数据类型转换
        //1.自动转换
        static void Test5()
        {

            //条件:目标类型 > 我们使用的数据类型
            double value1 = 100.5;
            int value2 = 200;

            double result = value1 + value2;  //自动实现转换
            Console.WriteLine("自动类型转换结果  100.5+200=" + result);  //300.5

            //思考
            //int result1 = value1 + value2;
        }

        //2.强制转换(值类型)
        static void Test6()
        {
            double value1 = 100.6;
            int value2 = 200;

            //如果目标类型小于使用的数据类型,在转换后,会全部舍掉小数 (精度丢失)
            int result = (int)value1 + value2;
            Console.WriteLine("自动类型转换结果  100.6+200=" + result);
        }

        static void Test7()
        {
            object value1 = 100.6;
            int value2 = 200;

            //必须是要转换类型的有效表示形式
            int result = (int)(double)value1 + value2;
            Console.WriteLine("自动类型转换结果  100.6+200=" + result);
        }

        //强制转换(字符串和值类型之间的转换)
        static void Test8()
        {
            double value1 = double.Parse("100.5");
            float value2 = float.Parse("20.36");
            int value3 = int.Parse("500");
            //int value3 = int.Parse("500.6");
            DateTime value4 = DateTime.Parse("2022/05/30");

            Console.WriteLine($"{value1} {value2} {value3} {value4.ToShortDateString()}");
        }

        //万能转换器
        static void Test9()
        {
            double value1 = Convert.ToDouble("100.5");
            float value2 = Convert.ToSingle("20.36");
            int value3 = Convert.ToInt32("500");   //同样要求要转换的内容必须是目标类型的“有效表示形式”
            DateTime value4 = Convert.ToDateTime("2022-05-30");

            Console.WriteLine($"{value1} {value2} {value3} {value4.ToShortDateString()}");
        }
        #endregion

学习时间:

  • 周一晚上9:30~11:30
  • 周三晚上9:30~11:30

学习产出:

笔记1篇

CSDN总结一篇

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#工控上位机开发-->1、C#快速编程入门 的相关文章

  • RTOS任务调度过程(上下文切换)

    RTOS任务调度过程 xff08 上下文切换 xff09 解析 xff1a RTOS任务调度的机制是基于内核异常机制的 xff0c 即每产生一次调度就会产生一次内核异常 xff0c 那么 xff0c 要了解RTOS的任务调度机制需要先明白内
  • runtime-core.esm-bundler.js:40 [Vue warn]: Vue received a Component which was made a reactive object

    vue3 Vue warn 96 96 96 runtime core esm bundler js 40 Vue warn Vue received a Component which was made a reactive object
  • Prometheus监控k8s

    文章目录 前情提要监控k8s节点监控coreDns服务监控Ingress nginx监控k8s state metrics修改Prometheus的configmap并重载PrometheusGrafana展示监控的数据节点基础信息监控co
  • JDK更换IDEA如何修改

    一 打开idea设置 1 点击file里面的settings 二 取消默认javac编译 2 然后点开 Build Execution Deployment找到里面的compiler xff0c 再点开Java compiler 取消勾选
  • VUE父子传值报错问题

    Avoid mutating a prop directly since the value will be overwritten whenever the parent component re renders Instead use
  • Postman简介及接口测试流程(小菜鸟攻略)

    目录 前言 一 常见接口 二 前端和后端 三 什么是接口测试 四 接口组成 1 接口说明 2 调用url 3 请求方法 xff08 get post xff09 4 请求参数 参数类型 请求参数说明 5 返回参数说明 五 为什么要做接口测试
  • k8s:Pod 基础概念

    目录 一 资源限制 xff0c 二 Pod 的两种使用方式 三 Pod 资源共享 四 底层容器Pause 4 1 Pause共享资源 4 1 1 网络 4 1 2 存储 4 1 3 小结 4 2 Pause主要功能 4 3 Pod 与 Pa
  • Docker-dockerfile

    目录 一 dockerfile概念 二 Docker镜像创建 1 基于现有镜像创建 2 基于本地模板创建 3 基于dockerfile创建 3 1 dockerfile结构 3 2 构建镜像命令 三 dockerfile操作指令 1 ENT
  • windows/linux 下iozone参数详解

    iozone是一个文件系统的benchmark工具 xff0c 可以测试不同的操作系统中文件系统的读写性能 可以测试 Read write re read re write read backwards read strided fread
  • Windows认证Kerberos访问HDFS

    一 Windows认证Kerberos访问HDFS 1 官网下载地址 xff1a http web mit edu kerberos dist 2 安装步骤 默认安装地址 C Program Files MIT Kerberos C Pro
  • 2022(招聘季)linux面试高频题

    大家好 xff0c 今天给大家分享一下2022最新最全的linux面试高频题 xff0c 希望你们喜欢 linux运维工程师在面试的时候经常会被问到各种问题 xff0c 接下来我也会根据自己的经验将面试题整理下来供大家参考 有不同见解的欢迎
  • 自动化测试工具——Selenium详解

    目录 前言 Selenium的几个特点 seleniun组成部分 selenium RC selenium IDE selenium Grid selenium webDriver 那么selenium RC 与webdriver 主要有什
  • Linux命令新建目录mytest并且设置权限

    1 在 usr目录中新建一个目录目录名称 xff1a mytest 并在mytest目录中新建文件net txt 设置文件的属 性为文件属主 u 增加执行权限 xff0c 文件属主同组用户 g 增加写入权限 xff0c 其他用户 o 删除读
  • ubuntu18.04安装realsenseD435驱动

    1 下载编译librealsense master 1 1 更新内核 运行代码 uname r 如果 gt 61 4 4 0 50的版本则ok xff0c 否则需要升级内核 1 2 更新cmake xff08 需要3 6以上版本 xff09
  • 用realsensed435录制数据集并跑orb-slam2

    1 lt 利用ros记录话题 xff0c 获得bag文件 gt 首先launch相机节点 roslaunch realsense2 camera rs camera launch rosbag获得 bag 文件 xxx为 bag文件的命名
  • QT上位机控制stm32,并利用PID控制编码电机旋转

    QT上位机控制stm32 xff0c 并利用PID控制编码电机旋转 由于最近在学习电机控制算法之类的东西 xff0c 看到论文大多使用PID 或以PID衍生的ADRC作为电机的主流控制 xff0c 于是自己也写了一个stm32控制L298N
  • 第十一章 STM32中断应用

    目录 11 1 中断概述 11 1 1 中断的基本概念和原理 11 1 2 STM32中断系统结构和工作原理 11 1 3 中断向量表及存储位置 11 2 中断控制器 11 2 1 NVIC的功能和特点 11 2 2 中断优先级的设置方法和
  • 第十二章 SysTick—系统定时器

    目录 12 1 STM32 SysTick基础知识 12 1 1 什么是SysTick 12 1 2 SysTick的作用和优势 12 1 3 SysTick寄存器及其功能介绍 12 2 STM32 SysTick标准延时函数设计 12 2
  • C语言入门:可变参数

    有时 xff0c 您可能会碰到这样的情况 xff0c 您希望函数带有可变数量的参数 xff0c 而不是预定义数量的参数 C 语言为这种情况提供了一个解决方案 xff0c 它允许您定义一个函数 xff0c 能根据具体的需求接受可变数量的参数
  • linux/clearlinux/ubun开机自动挂载文件配置方法

    开机自动挂载配置文件 etc fstab 以空格或制表位分隔为6列 本例以EXT分区 dev sda6配置自动挂载 xff0c 只跟设备设备名或挂载点即可进行挂载 xff0c 重启后将自动挂载 为交换分区 dev sda8配置自动挂载 xf

随机推荐

  • Ubuntu18.04 ROS melodic环境下,通过Gazebo软件仿真SLAM算法的学习(gmapping/karto/cartographer/hector)

    目录 一 环境场景搭建world 1 下载insert插件 xff08 该插件下会提供一些建好的场景 xff0c 也可不下载 xff09 2 环境搭建 xff08 自建 xff09 3 保存环境 4 配置修改 5 启动环境 二 机器人模型U
  • rosbag命令 | EVO工具 的使用

    目录 一 rosbag录制及查看 1 rosbag话题录制 2 rosbag信息查看 3 rosbag转换格式 xff08 bag2txt xff09 4 rosbag截取录制时间 二 EVO工具使用命令 1 evo traj 命令 2 e
  • 记一次FreeRTOS移植到STM32f103遇到的问题

    问题 xff1a 移植FreeRTOS源码后写了简单的程序验证 xff0c 使用keil软件仿真发现程序一直卡在开启任务调度函数vTaskStartScheduler 中 解决 xff1a 在FreeRTOSConfig h文件中加入以下代
  • 阿里云服务器怎么登陆

    一 xff0e 连接登录Windows阿里云服务器 对于Windows操作系统 xff0c 可通过PUTTY VNC和Windows系统自带远程桌面工具等方式访问 此处以Windows自带远程桌面工具为例 xff1a 1 单击 开始 图标
  • putty连接不上该怎么办

    虚拟机Oracle VM VirtualBox 操作系统是CentOS7 1 首先有配置好的虚拟机网络 2 要登陆虚拟机 3 用管理员身份打开cmd 4 连接putty 创建好虚拟机 xff0c 启动虚拟机 xff0c 进行登录 输入ip
  • LT87121 适用于EDPx/VBO转DP/EDP应用方案,支持中心扩频+5000ppm@30kHz,温度范围: -40°C~+85°C

    1 说明 LT87121 是一款高性能 eDPx 至 eDP DP 转换器 xff0c 专为将 eDPx 源连接至一个 eDP DP 灌电流而设计 该器件能够自动操作 xff0c 由集成微处理器启用 xff0c 该微处理器使用嵌入式SPI闪
  • OpenHarmony适配移植:X86、ARM、RISC-V、MIPS、LoongArch芯片架构简析

    前言 基于OpenHarmony的开发相关工作 xff0c 特别适配移植 设备开发这块 xff0c 芯片的基础构架知识 xff0c 是最初的学习起点 本文我们整理了几种常见的芯片构架的基础知识 一 整体分析 序号 架构 特点 运营机构 1
  • 个人笔记Openstack中的常用命令

    一 块存储 xff08 Cinder xff09 1 列出所有卷 xff08 ID 名称 状态 大小和挂载目录 xff09 openstack volume list 2 新建卷 xff08 size的单位为GB xff09 opensta
  • 380无人机机架组装笔记

    无人机机架买的380碳纤维 飞控买的pixhawk6c 遇到的问题 xff1a 1 买回来组装发现支撑板少了 xff0c 只有一个碳纤维的中心板和PCB板 组装无人机大概需要三到四块板子 xff0c 分别用于安放电池 xff0c 安装分电板
  • JS逆向-sm2、sm4加密某医保局

    前言 该文章为学习使用 xff0c 严禁用于商业用途和非法用途 xff0c 否则由此产生的一切后果均与作者无关 xff01 如有侵权 xff0c 请私信联系作者删除 需求 目标网址 xff1a aHR0cHM6Ly9mdXd1Lm5oc2E
  • Ubuntu16.04 出现E: Sub-process /usr/bin/dpkg returned an error code (100)

    原因为系统中dpkg文件损坏了 xff08 原因不详 xff09 xff0c 使用apt get f update也不能修复 需要单独下载dpkg的安装包进行修复 修复操作如下 1 在官网下载dpkg安装包 http security ub
  • SecureCRT抓取串口log

    一 通用自动配置 通用自动配置是指配置之后 xff0c 每次创建新的session都会导入该配置 xff0c 无需重复配置 xff0c 非常方便 首先在option里面找到Global Options xff1b 在Global Optio
  • vscode处理代码合并冲突

  • mysql---修改数据库root密码的方法

    为了数据库管理员root用户密码的安全 xff0c 可以定期修改密码 注意 xff1a 修改密码 必须要知道旧密码 才能设置新密码 并且要符合密码策略的要求 方法一 登录后修改 xff0c 数据库管理员连接服务后 修改自己的登陆密码 spa
  • 关于debian网卡驱动

    1 查看驱动信息的命令 xff1a 查看基本信息 xff1a lspci 22 00 0 有线网卡 25 00 0 无线网卡 26 00 0 Nvidia独立显卡 查看详细信息 xff1a lspci vvv 有线网卡使用的驱动为 xff1
  • Python实战,爬取金融期货数据

    大家好 xff0c 我是毕加锁 今天给大家带来的是 Python实战 xff0c 爬取金融期货数据 文末送书 xff01 文末送书 xff01 文末送书 xff01 任务简介 首先 xff0c 客户原需求是获取https hq smm cn
  • 在Ubuntu系统下利用Kazam软件录屏以及视频解码问题

    最近利用在本想在Ubuntu系统下录制一段仿真效果视频 xff0c 利用Ubuntu系统自带的录屏方式 xff0c 发现有些鸡肋 xff0c 因为只能录30秒 于是乎找了一款软件 xff0c 在此安利给大家 Kazam 1 Ubuntu系统
  • PMP1——3章经典题目

    第1题 以下哪个是项目的特点 xff1f A xff0e 必须为组织实现利润 B xff0e 通常会产出相同的产品 C xff0e 推动组织从当前状态转变到将来状态 D xff0e 项目是需要持续开展的重复性工作 第2题 旨在创造最终结果的
  • 认识世界和改造世界 [马原]

    认识世界与改造世界 认识世界 定义 认识世界 xff0c 就是主体能动地反映客体 xff0c 获得关于事物的本质和发展规律的科学知识 xff0c 探索和掌握真理 认识世界的活动是客观见之于主观 xff0c 是要认识事物发展的规律性 如何认识
  • C#工控上位机开发-->1、C#快速编程入门

    学习目标 xff1a 一 控制台的输入输出二 C 中的变量使用三 字符串的拼接与格式化的三种方式四 数据类型转换的三种方式 学习内容 xff1a 1 控制台的输入输出 xff08 1 xff09 输入方法 xff1a Console Rea