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#教程 目录

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师

背景 前面的文章通过 Ollama 私有化部署了 Qwen2.5 (7B) 模型,然后使用 Docker Compose 一键部署了 Dify 社区版平台。 LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库:在 Dify 平台上,通过普通编排的方式,创建了基于…

ESP32S3:参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路 (实现各个平台移植使用该方式)

目录 引言使用SPI + DMA 方式实现思路分析1. 查看WS2812的datasheet手册2. 根据官方的led_strip组件的方式,自己手把手实现一遍3.完整的程序(实现霓虹灯效果)引言 参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路,只有明白实现的思路,方能将其…

工程师 - VSCode的AI编码插件介绍: MarsCode

豆包 MarsCode MarsCode AI: Coding Assistant Code and Innovate Faster with AI 豆包 MarsCode - 编程助手 安装完成并使能后,会在下方状态栏上显示MarsCode AI。 安装完并重启VSCode后,要使用这个插件,需要注册一下账号。然后授权VSCod…

DPVS-5: 后端服务监控原理与测试

后端监控原理 被动监测 DPVS自带了被动监控,通过监控后端服务对外部请求的响应情况,判断服务器是否可用。 DPVS的被动监测,并不能获取后端服务器的详细情况,仅仅通过丢包/拒绝情况来发觉后端服务是否可用。 TCP session state…

Tag标签的使用

一个非常适合运用在vue项目中的组件:Tag标签。 目录 一、准备工作 1、安装element-plus库 2、配置element-plus库 二、Tag标签入门 1、打开element官网,搜索tag标签 2、体验Tag标签的基础用法 三、Tag标签进阶训练1 1、定义一个数组,…

算法-图-数据结构(邻接矩阵)-BFS广度优先遍历

邻接矩阵广度优先遍历(BFS)是一种用于遍历或搜索图的算法,以下是具体介绍: 1. 基本概念 图是一种非线性的数据结构,由顶点和边组成,可分为无向图、有向图、加权图、无权图等。邻接矩阵是表示图的一种数…

Ryu:轻量开源,开启 SDN 新程

1. Ryu 控制器概述 定位:轻量级、开源的SDN控制器,专为开发者和研究人员设计,基于Python实现。开发者:由日本NTT实验室主导开发,遵循Apache 2.0开源协议。核心理念:简化SDN应用开发,提供友好的…

内容中台架构下智能推荐系统的算法优化与分发策略

内容概要 在数字化内容生态中,智能推荐系统作为内容中台的核心引擎,承担着用户需求与内容资源精准匹配的关键任务。其算法架构的优化路径围绕动态特征建模与多模态数据融合展开,通过深度强化学习技术实现用户行为特征的实时捕捉与动态更新&a…

【odoo18-文件管理】在uniapp上访问odoo系统上的图片

在uniapp上访问odoo系统上的图片 1、以url的形式访问 a:以odoo本身的域名,比如http://127.0.0.1:8069/web/image/product.template/3/image_128?unique1740380422000,这种方式需要解决跨域的问题。 b:以文件服务器的形式&…

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人 在这个项目中,我们将结合本地 AI 的隐私与 Deepseek R1 的智能,创建一个完全本地化、推理驱动的问答机器人。 在人工智能 (AI) 日益融入我们日常生活的时代,一个问题仍然处于最前沿:隐私。尽管基于云的 AI 系统功能强大…

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

将maya模型物体材质转化为面材质

将maya模型物体材质转化为面材质,以在导出abc时继承材质信息; 运行一下python代码: import maya.cmds as cmds objListcmds.ls(slTrue) for obj in objList:shapeNodeNamecmds.listRelatives(obj, shapesTrue)sgNodesListcmds.listConnecti…

数据库面试题(基础常考!!!)

在数据库领域,无论是日常开发还是面试场景,都有一些高频且重要的问题需要我们深入理解和掌握。本文将对这些常见面试题进行详细阐述,帮助大家更好地应对面试和实际工作中的挑战。 面试题一:三范式详解 什么是三范式 三范式是关…

论文笔记(七十二)Reward Centering(三)

Reward Centering(三) 文章概括摘要3 基于值的奖励中心化4 案例研究: 以奖励为中心的 Q-learning5 讨论、局限性与未来工作致谢 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan…

鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar)

鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar) 1、效果展示2、下载 DevEco Studio3、创建项目4、新建页面模板5、更改应用信息6、新建以下页面7、Index.ets8、真机运行9、图片资源文件 1、效果展示 2、下载 DevEco Studio 访问官网根据自己的版本…

蓝桥杯第十六届嵌入式模拟编程题解析

由硬件框图可以知道我们要配置LED 和按键 LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码&#xf…

二叉树的遍历知识点及习题

一、知识点 1二叉树的遍历理解为按照预先定好的搜索路径访问树里的每个节点,且每个节点仅访问一次 2假设根节点为N,左子树为L,右子树为R,常见的三种遍历方法分别是先(前)序遍历NLR 根左右,中序…

“conda”不是内部或外部命令,也不是可运行的程序或批处理文件

有的时候,我们发现在cmd黑框中输入conda时,cmd会显示“conda”不是内部或外部命令,也不是可运行的程序或批处理文件,那这时候该怎么解决呢? Step01:我们找到Anconda的安装目录。然后找到里面的bin文件夹&am…

特辣的海藻!3

基础知识点 判断一个数是否是2的幂次 方法一:位运算 所有2的幂次数的二进制表示中有且仅有一个1,进行位运算 n&(n-1) 后结果为0 检查正数:n > 0(负数和0不是2的幂次)位运算: n & ( n -1) 会…

苍穹外卖中的模块总结

本文总结苍穹外卖项目中可复用的通用设计 sky-common constant存放常量类&#xff0c;包括消息常量&#xff0c;状态常量 context是上下文对象&#xff0c;封装了threadlocal package com.sky.context;public class BaseContext {public static ThreadLocal<Long> thre…