当前位置: 首页 > article >正文

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.kler.cn/a/560888.html

相关文章:

  • 基于大数据技术智能教学系统的设计与实现
  • 深入浅出ES6:现代JavaScript的基石
  • XML DOM4J 二、document对象
  • 离线环境如何玩转LLM?Ollama一键部署指南(Ubuntu)
  • Redis 集群的三种模式:一主一从、一主多从和多主多从
  • 【linux】全志t113平台修改ota升级配置文件,定向选择升级分区
  • AI赋能市场预测:ScriptEcho如何提升数据可视化效率
  • 自由学习记录(38)
  • 自动驾驶之BEV概述
  • 【UCB CS 61B SP24】Lecture 11 - Inheritance 4: Iterators, Object Methods学习笔记
  • 浅析 DeepSeek 开源的 FlashMLA 项目
  • 从三个维度了解 RPC(Remote Procedure Call,远程过程调用)
  • 算法打卡第十二弹——二叉树
  • Unity 协程
  • 【NLP 26、实践 ⑥ 引入bert,判断文本中是否有特定字符出现】
  • Linux 命令大全完整版(12)
  • 论文笔记:Scaling Sentence Embeddings with Large Language Models
  • 服务器能否拒绝非浏览器发起的HTTP请求?
  • 0224-leetcode-459.重复的子字符串、283. 移动零
  • unity学习53:UI的子容器:面板panel