c#笔记-变量

news2024/11/25 12:00:56

变量

在编写程序时,我们不能直接预测运行时所有的可能性。
例如在登录时的用户名和密码,有无数种组合。我们无法写出所有可能的值。
变量可以动态地表示一个值。

定义变量

使用var + 标识符,并立刻赋值,可以声明一个变量。

var s = "hello";

引号包围表示他是一串文字。
Console.WriteLine()表示执行Console类的WriteLine方法,是程序的一部分
"Console.WriteLine()"表示的是一串文字。里面的东西不会执行。
在这里插入图片描述

使用变量

使用变量的语法是,直接写出变量的名字(标识符)。
变量是程序的一部分。所以使用的时候不要加引号包围。

Console.WriteLine(s);
Console.WriteLine(s + "world");
Console.WriteLine(s + "世界");

修改值

修改一个变量的值称之为赋值
语法和声明变量类似。但是不要最开头的那个var。
var表示声明一个变量,只有创建时才需要附带上。

s = "你好";
Console.WriteLine(s);
Console.WriteLine(s + "world");
Console.WriteLine(s + "世界");

变量保存值而不保存操作

变量是值的容器,用变量先把值装起来再访问变量,和直接访问值的效果是一样的。
例如:

var s = Console.ReadLine();
Console.WriteLine("你输入了" + s);

//-----------------------

Console.WriteLine("你输入了" + Console.ReadLine());

但是如果使用多次的话,情况就不一样了。

var s = Console.ReadLine();
Console.WriteLine("你输入了"+s);
Console.WriteLine("你输入了"+s);

//-----------------------

Console.WriteLine("你输入了" + Console.ReadLine());
Console.WriteLine("你输入了" + Console.ReadLine());

Console.ReadLine包含了

  1. 暂停程序
  2. 在用户按下回车时(且有输入)时获取值
  3. 把获取到的输入生成值,返回到程序中

上面的代码会暂停一次。然后把获取到的结果储存到变量中。
然后立刻输出两次这个变量。中间不会再暂停。

而下面的代码则会暂停两次,获取两次输入,所以可以输出不同的结果。

标识符

变量的名字这个可以随便起的,我们称为标识符。
不止变量可以随便起名字,后面还有其他东西可以随便起名字。这些都叫标识符。

但标识符不是真的可以随便起,他有一些限制。

  1. 不能以数字开头
  2. 不能有特殊符号
  3. 不能和有效范围内的标识符重名
  4. 不能和关键字重复。

关键字

什么叫关键字呢?在你玩游戏时,进入设置里改键,有些键是不能设置成功的。
比如esc键。你按下他时,会执行他的作用:取消操作。
而不是执行接受这个键,取消操作的优先级更高。

在c#里,这种优先级极高的命令就叫关键字。var就是一个关键字,你可以从颜色来区分他。

转义标识符

有时候你会接收其他程序发来的数据。然后别人的变量名字恰好在c#里是关键字。
这时候可以在关键字前面加@符号来变成标识符。这个符号本身不会被计入标识符中。
只有对是关键字的东西才能加@转义,如果不是关键字的标识符加这个会报错。

类型

C#是一种强类型语言。无论变量,常量,字面量,表达式,方法返回值。他们都有自己的类型
类型规定了一个值的职责范围。像QQ号这种数据,可以用文字储存,也可以用数字储存。

文字类型负责查找,替换,裁剪等职责。而数字类的职责是数学运算,大小比较。
我们不太可能会QQ号进行数学运算或大小比较,而更可能裁剪。
所以尽管他是纯数字,却更适合用文字类型储存。

变量只能储存兼容的值

声明变量的语法,最开头的var其实应该填一个类型。
而var关键字的作用是帮你自动识别值的类型。
帮你省事了,但他的限制还在。文字类型的变量是无法接收数字值的。

var s = "hello";//文字类型的变量
s = 12;//类型不兼容

var i = 16;//数字类型的变量
i = "16";//类型不兼容

动态类型

c#是类型安全高效的语言。但安全是可以舍弃的。
使用动态类型,会真正跳过类型检查。
提供了一些便利性,但失去了安全性和基于类型的代码提示。

dynamic s = "hello";
s = 12;

dynamic i = 16;
i = "16";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/479809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

倾斜摄影三维模型OSGB格式转换OBJ格式的主要技术方法

倾斜摄影三维模型OSGB格式转换OBJ格式的主要技术方法 将倾斜摄影所获得的三维模型从OSGB格式转换为OBJ格式,可以实现更加灵活和便捷的数据应用和管理。主要技术方法如下: 1、使用转换工具 目前市面上有许多三维模型格式转换工具,比如K3DMak…

辨析 项目范围核查、WBS核查

项目范围核查、WBS核查辨析 项目范围核查 项目目标是否完善和准确指标是否可靠和有效约束和限制条件是否真实和符合实际重要假设前提是否合理风险是否可以接受成功把握是否很大范围定义是否能够保证上述目标的实现范围能够给出的效益是否高于成本范围定义是否需要进一步进行辅…

Python+vue企业员工高校学生体检服务预约系统PyCharm+django

开发语言:Python 框架:django Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCharm 功能介绍 通过软件的需求分析已经获得了系统的基本功能需求,根据需求&#xff0c…

五子棋游戏程序创作过程(C语言)

五子棋游戏程序创作过程(C语言 ) 我是编程爱好者,对游戏程序编制很感兴趣。学习VB6语言时就编制过一些游戏程序,如独立钻石棋、伤脑筋十二块、连连看、扑克牌游戏等,都是windows标准图形界面的。感到很好玩&#xff0…

vue3+ts+vite自适应项目——路由、layout布局

系列文章目录 第一章:搭建项目 目录 系列文章目录 前言 一、vue-router 1.安装vue-router 2.引入 2.1 新建页面 2.2 公共样式引入 2.3 layout 布局 2.4路由配置 总结 前言 上一章我们搭建了项目,这一张主要讲路由和layout布局,和…

go环境安装

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时…

ArduPilot之GPS Glitch问题M8N模块配置

ArduPilot之GPS Glitch问题&M8N模块配置 1. 源由2. 现象3. 视频分析3.1 配置(不理想)3.2 配置优化3.3 优化配置短时间3D LockGlitch3.4 优化配置长时间3D DGPS Lock3.5 使用尽量多的卫星系统3.5.1 配置一3.5.2 配置二 4. 总结4.1 解锁卫星数4.2 自动…

项目风险管理

风险的分类(按照性质划分) 纯粹风险:只有损失可能性而无获利可能性的风险。投机风险:相对于纯粹风险而言,指既有损失的可能又有获利机会的风险。风险既是一个危险也是一个机会 一、规划风险管理 决定如何进行规划和实施项目风险管理活动 二、风险识别 判断哪些风险会…

单列文本数据快速导入表格

文本数据导入Excel似乎是个老生常谈,方法也有很多,例如 使用文本编辑器打开文本文件,拷贝粘贴到Excel然后分类Power Query中的【从文本/CSV】如下图所示。 但是这个需求略有不同,文本数据为单列,每7行数据为一组&am…

2023年华东杯数学建模B 题 期货价格相关性问题-思路解析

题目背景: 许多金融标的都有其内在的关联,如何从量价数据找到这种关联是一个有趣的 问题。例如在万得的“煤焦钢矿”板块中,有螺纹钢、铁矿石、不锈钢、热轧卷板、 硅铁、焦煤、焦炭、锰硅、线材 9 个品种。这些品种有些是上下游关系&…

【高频电子线路】——高频小信号放大器学习笔记总结

CSDN话题挑战赛第2期 参赛话题:学习笔记 学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐&a…

SmartEngine流程引擎之Custom模式

目录 一、为什么选用SmartEngine 二、各类流程引擎框架简单对比 1、流程设计器推荐 2、什么是BPMN 流程定义解释说明 三、SmartEngine之Custom实操 1、引入依赖 2、典型的初始化代码如下 3、节点如何流转以及流程实例存储问题 4、定义Delegation 关键类 一、为什么选用…

RebbitMQ Windows安装

RabbitMQ是由Erlang语言写的,因此安装前要先安装Erlang Erlang及RabbitMQ安装版本的选择 下载时一定要注意版本兼容性 版本兼容说明地址:RabbitMQ Erlang Version Requirements — RabbitMQ 我们选择的版本 Erlang官网下载:https://www.erlang.org/downloads Ra…

[大家的项目] 获取主机IP地址

get-host-ip https://github.com/stuartZhang/get-host-ip/tree/main 这是一款用rust制作的命令行工具。其被设计用来从C:\Windows\System32\ipconfig.exe的执行结果内提取出指定【网卡】的属性值。比如,从电脑本的【无线局域网适配器WLAN】中提取出【IPv4地址】字符…

写给开发同学的 AI 强化学习入门指南

该篇文章是我学习过程的一些归纳总结,希望对大家有所帮助。 最近因为 AI 大火,搞的我也对 AI 突然也很感兴趣,于是开启了 AI 的学习之旅。其实我也没学过机器学习,对 AI 基本上一窍不通,但是好在身处在这个信息爆炸的…

数据结构---栈的实现

文章目录 前言一、什么是栈?二、栈的实现 1.栈的结构2.栈的接口实现过程总结 前言 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一…

用ChatGPT通过WebSocket开发一个交互性的五子棋微信小程序(二)

文章目录 1 前言1.1 实现的原理1.2 如何与微信小程序联系 2 五子棋项目2.1 申请OpenAI的API2.2 调用API代码2.3 界面代码 3 同步五子棋到前端小程序3.1 WebSocket长连接3.2 获取实时下棋 4 讨论 1 前言 1.1 实现的原理 大体方向是将ChatGPT作为后端语言模型,然后将…

AD19 基础应用技巧(差分线的添加走线与蛇形等长)

《差分线的添加走线与蛇形等长》 问:何为差分信号? 答:通俗地说,就是驱动端发送两个等值、反相的信号,接收端通过比较这两个电压的差值来判断逻辑状态“0”还是“1”。 问:差分线的优势在哪? 答:差分信号和普通的单端信号走线相比,最明量…

【SpringBoot2】三:基础入门---自动配置原理(自动配置原理入门+开发技巧)

文章目录 1.自动配置原理入门1.1 引导加载自动配置类1.2 按需开启自动配置项1.3 修改默认配置1.4 最佳实践 2.开发小技巧2.1 Lombok2.1.1 简化Bean开发2.1.2 简化日志开发 2.2 dev-tools2.3 Spring Initailizr(项目初始化向导) 1.自动配置原理入门 1.1 …

【数据库】Java的JDBC编程(idea链接数据库)

目录 前言 1、Java的数据库编程:JDBC 2、使用JDBC(项目中导入数据库驱动包) 2.1、获取驱动包 2.2、将数据库驱动包导入Java项目中 2.3、使用JDBC编写代码 2.3.1、创建并初始化一个数据源 2.3.2、 和数据库服务器建立链接 2.3.3、构…