c#笔记-变量

本文介绍了C#编程中的变量概念,包括如何声明和使用变量,以及变量的赋值和类型转换。强调了变量作为值的容器,以及在不同场景下的类型限制和关键字的特殊意义。同时提到了动态类型在牺牲类型安全性的前提下提供的便利性。
摘要由CSDN通过智能技术生成

变量

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

定义变量

使用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 s1 = Console.ReadLine();
Console.WriteLine("你输入了" + s1);

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

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

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

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

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

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

Console.ReadLine包含了

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

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

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

标识符

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

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

  1. 不能以数字开头
  2. 不能有特殊符号(下划线_除外)
  3. 不能和有效范围内的标识符重名
  4. 不能和关键字重复。
  • 可以用中文
  • 如果你喜欢,用日文韩文也行
  • 注音符号(声调韵母ǎ,音标ʒ)和希腊字母(Ω)和罗马数字是可以的。
  • 变量名可以和类型同名,即便是它自己的类型。但关键字类型除外。

关键字

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

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

转义标识符

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

var @var ="hello";

类型

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

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

变量只能储存兼容的值

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

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

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

动态类型

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

dynamic s4 = "hello";
s5 = 12;

dynamic i2 = 16;
i2 = "16";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值