2.3 变量
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
变量是用来存放某个值的数据,它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中,变量的值是可以改变的。
2.3.1 声明一个变量
通常情况下变量应先声明再使用。
在C#中常常采用以下语法声明变量:
变量类型 变量名称;
例如:
string strName;
这里声明了一个string(字符串类型)的变量strName。
VB.Net通常使用:
Dim变量名称As变量类型
来声明一个变量。
相对于VB.Net,C#的声明更简略。
多个同类型变量的定义可以使用以下语句:
变量类型 变量名称1, 变量名称2;
变量之间使用,(英文逗号)隔开,例如:
string strName, strGender;
对于上述进行了类型声明的变量,一般称为显式类型变量,通过var关键字来声明变量,也可以不指明变量类型,例如:
var strName="Name";
编译器会为从=运算符右侧表达式推断出变量的类型。
相对而言,Vb.Net使用
Dim strName
赋予strName一个默认的变量类型:Object,当代码运行时,再根据实际赋予相应的类型。
注意:使用var来声明变量一般称为隐式类型变量,必须在声明时初始化。
【例 2.5】【项目:code2-005】使用未声明的代码。
static void Main(string[] args)
{
var strName= "XiaoMing";
Console.WriteLine(strName);
Console.ReadKey();
}
如果使用var声明的时候没有赋初始值,那么编辑器会提示错误。

图2-5 编辑器将未初始化的声明标注为错误
为了让阅读代码的人更清楚地理解变量,应该声明变量后再使用。
2.3.2 变量的赋值
通常变量声明后通过=(等于号)来赋值,例如:
strName=" XiaoMing ";
这里将“XiaoMing”这个字符串值赋给了strName,在以后的代码中出现的strName其实就是“XiaoMing”。注意:与VB.Net不同,C#里面=只能是赋值符号,不是判断相等的运算符,判断是否相等应该使用==(两个等号)。
那么也可以在声明变量的时候就赋予变量一个初始值,例如:
string strName= "XiaoMing";
注意:可以多个同类型变量的声明的同时使用赋值,例如以下代码:
string strName, strGender = "XiaoMing";
但只赋值给最后一个变量。
2.3.3 变量名称规则
变量名称通常由数字、字母和下划线组成且第一个字符不能为数字,不能使用系统的关键字(如:for、string等等)作为变量名称。不过请放心的是,如果不小心使用了关键字,VS会提醒的。
网上对于变量的命名有很多看法,通常情况下使用
简化的类型名称+变量的含义
例如上面的strName,str是类型String的简化,相应的int是Integer的简化等;Name是汉字姓名的英语单词。Str+Name合在一起表示这个变量定义的是某个人的姓名,同时也反映了这个变量是一个字符串类型。
通常类型名称小写,变量含义的单词首字母大写,如果变量含义由多个单词组成,那么每个单词的首字母都大写。例如:
string strNameOfSomeone;
由于C# 编辑器区分变量大小写,strName 和 strname、STRNAME是不相同的(个人吐槽:这点没有VB.Net好),这点需要注意。
在实际编程中,如果不是团队开发,各人可以按照个人的习惯来命名变量。比如英文单词不熟悉的可以声明strXingming、strXM,甚至 Xingming,或者汉字的:str姓名、姓名……都可以。在团队开发时,建议采用统一的命名方式,便于阅读,不建议使用诸如:strName1、strName2这样不便于理解的变量名称。
简单的循环可以使用i、j、k等单字母作为变量名称。
需要说明的是,为了讲解方便和便于理解,在本书中有时候不一定会按照以上方法给变量命名,特别是窗体、控件、组件的名称,会使用VS提供的默认名称。
学习更多vb.net知识,请参看vb.net 教程 目录
学习更多C#知识,请参看C#教程 目录
相关文章:
2.3 变量
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 变量是用来存放某个值的数据,它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中…...
Docker:Docker从入门到精通(一)- Docker简介
一、前言 通过本专栏的学习,我们将了解 1. 掌握Docker基础知识,能够理解Docker镜像与容器的概念 2. 完成Docker安装与启动 3. 掌握Docker镜像与容器相关命令 4. 掌握Tomcat Nginx 等软件的常用应用的安装 5. 掌握docker迁移与备份相…...
【复习】Redis
数据结构 Redis常见的数据结构 String:缓存对象Hash:缓存对象、购物车List:消息队列Set:点赞、共同关注ZSet:排序 Zset底层? Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…...
在Spring Boot+Vue前后端分离的项目中使用JWT实现基本的权限校验
说明 在 Spring Boot + Vue 前后端分离的项目中,如果不使用第三方服务(如 Spring Security、Shiro 等),可以通过自定义实现基本的权限校验。 使用JWT实现步骤 以下是实现步骤: 1. 设计权限模型 通常权限模型包括: 用户(User):系统的使用者。角色(Role):用户的权…...
蓝桥杯单片机组第十二届省赛第二批次
前言 第十二届省赛涉及知识点:NE555频率数据读取,NE555频率转换周期,PCF8591同时测量光敏电阻和电位器的电压、按键长短按判断。 本试题涉及模块较少,题目不难,基本上准备充分的都能完整的实现每一个功能,并…...
伪404兼容huawei生效显示404
根据上述思考,以下是详细的中文分步说明: --- **步骤 1:获取目标设备的User-Agent信息** 首先,我们需要收集目标设备的User-Agent字符串,包括: 1. **iPhone设备的User-Agent**: Mozi…...
UIAutomation开发常用方法的参考文档
简介 由于UIAutomation的官方文档只有一个github中的readme文件,只是简单的使用示例,具体使用还需要在代码中查找,非常不方便。经过我多年使用UIAutomation开发的经验和整理,把常用的功能梳理成本文档,作为我的开发参考使用,这样就不用每次都翻代码了,同时也可以使用AI…...
数据库面试题(基础常考!!!)
在数据库领域,无论是日常开发还是面试场景,都有一些高频且重要的问题需要我们深入理解和掌握。本文将对这些常见面试题进行详细阐述,帮助大家更好地应对面试和实际工作中的挑战。 面试题一:三范式详解 什么是三范式 三范式是关…...
ASP.NET Core Clean Architecture
文章目录 项目地址一、项目主体1. CQRS1.1 Repository数据库接口1.2 GetEventDetail 完整的Query流程1.3 创建CreateEventCommand并使用validation 2. EFcore层2.1 BaseRepository2.2 CategoryRepository2.3 OrderRepository 3. Email/Excel导出3.1 Email1. IEmail接口层2. Ema…...
蓝桥杯备赛-精卫填海-DP
精卫终于快把东海填平了!只剩下了最后的一小片区域了。同时,西山上的木石也已经不多了。精卫能把东海填平吗? 事实上,东海未填平的区域还需要至少体积为 v 的木石才可以填平,而西山上的木石还剩下 n 块,每块…...
Windows10配置C++版本的Kafka,并进行发布和订阅测试
配置的环境为:Release x64下的环境 完整项目:https://gitee.com/jiajingong/kafka-publisher 1、首先下载相应的库文件(.lib,.dll) 参考链接: GitHub - eStreamSoftware/delphi-kafka GitHub - cloade…...
vue3 下载文件 responseType-blob 或者 a标签
在 Vue 3 中,你可以使用 axios 或 fetch 来下载文件,并将 responseType 设置为 blob 以处理二进制数据。以下是一个使用 axios 的示例: 使用 axios 下载文件 首先,确保你已经安装了 axios: npm install axios然后在你…...
【Gin-Web】Bluebell社区项目梳理6:限流策略-漏桶与令牌桶
本文目录 一、限流二、漏桶三、令牌桶算法四、Gin框架中实现令牌桶限流 一、限流 限流又称为流量控制,也就是流控,通常是指限制到达系统的并发请求数。 限流虽然会影响部分用户的使用体验,但是能一定程度上保证系统的稳定性,不至…...
51单片机-AT24CXX存储器工作原理
1、AT24CXX存储器工作原理 1.1、特点: 与400KHz,I2C总线兼容1.8到6.0伏工作电压范围低功耗CMOS技术写保护功能当WP为高电平时进入写保护状态页写缓冲器自定时擦写周期100万次编程/擦除周期可保存数据100年8脚DIP SOIC或TSSOP封装温度范围商业级和工业级…...
突破性能极限:DeepSeek开源FlashMLA解码内核技术解析
引言:大模型时代的推理加速革命 在生成式AI大行其道的今天,如何提升大语言模型的推理效率已成为行业焦点。DeepSeek团队最新开源的FlashMLA项目凭借其惊人的性能表现引发关注——在H800 GPU上实现580 TFLOPS计算性能,这正是大模型推理优化的…...
点击修改按钮图片显示有问题
问题可能出在表单数据的初始化上。在 ave-form.vue 中,我们需要处理一下从后端返回的图片数据,因为它们可能是 JSON 字符串格式。 vue:src/views/tools/fake-strategy/components/ave-form.vue// ... existing code ...Watch(value)watchValue(v: any) …...
[AI]从零开始的树莓派运行DeepSeek模型教程
一、前言 在前面的教程中,教了大家如何在windows中使用llama.cpp来运行DeepSeek模型。根据前面的教程中,我们也了解到了,我们只需要编译好llama.cpp就可以运行DeepSeek以及类似的LLM模型。那么本次教程就来教大家如何使用树莓派来运行大模型。…...
2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(二)
2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(二) 第一部分:网络平台搭建与设备安全防护任务书第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务 1:应急响应&…...
Open WebUI本地部署教程
文章目录 1、系统环境配置2、源码下载2.1 github源码地址下载 3、环境启动3.1 后端环境3.2 前端环境 4、问题4.1 浏览器跨域问题4.2 all-MiniLM-L6-v2模型文件下载失败问题4.3 单独部署backend启动报错问题 1、系统环境配置 操作系统:windows/linux/macos Python版…...
Missing required prop: “maxlength“
背景: 封装一个使用功能相同使用频率较高的input公共组件作为子组件,大多数长度要求为200,且实时显示统计子数,部分input有输入提示。 代码实现如下: <template><el-input v-model"inputValue" t…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
