Skip to main content

1月日

你有没有想过,程序和人之间,到底是怎么“对话”的?

比如:登录时,程序提示:

请输入用户名:  // 你在闪烁的光标这里输入用户名
请输入密码: // 再输入密码
登录成功! // 最后,显示登录成功
请输入用户名: // 如果下次,
请输入密码: // 你不小心输错了密码
用户名与密码不匹配,请重新输入: // 程序就会提示你:

这种“你来我往”的互动,就叫交互式程序。

三、一个好名字有多重要?

《代码整洁之道》的作者 Bob 大叔,说过一句经典的话:

“你给变量起名时,应该像给第一个孩子起名一样用心。”

这话一点不夸张。在编程中,一个好的名字,直接决定了你的代码是一目了然,还是让人抓狂骂娘。

来,看个对比:

左边这段代码:变量名全是a、b、c、d ,单看代码,鬼知道它在干嘛?想看懂,全靠猜。

int a = 18;
double b = 55.5;
bool c = false;
string d = "张三";

if (a >= 18 && c)
{
Console.WriteLine($"{d} 满足条件");
}

再看右边,同样的逻辑,但变量名换成了有意义的英文单词:

int age = 18;
double weight = 55.5;
bool isMarried = false;
string userName = "张三";

if (age >= 18 && isMarried)
{
Console.WriteLine($"{userName} 满足条件");
}

感受下右边这段代码:优秀的命名,根本不需要注释,代码即注释,一目了然,这就是好名字的价值。

所以变量起名这事,绝对不能随心所欲。

四、变量命名规范

在 C# 中,变量命名遵循两套标准:硬性规则和软性约定。

一、硬性规则

硬性规则,是编译器的底线,不遵守直接报错,没得商量。

  • 规则 1,变量名的合法字符只能是字母、数字、下划线。空格、横线、标点符号这些,统统不行。
  • 规则 2,数字不能开头。变量名开头的字符只能是字母或下划线。
  • 规则 3,不能使用 C#的关键字。像 int、class、if、for 这些被语法占用的单词,绝对不能拿来当变量名。

奇奇:我存储班级名称,就想使用"class"怎么破?

村长:you see see you.偏要玩点骚操作,你可以在变量名前加个 @ 前缀强制使用关键字。 比如 @class、 @int,但老铁们,咱真的没必要这么干,纯粹给自己找麻烦。

第四,变量名严格区分大小写。age、Age、AGE,在编译器眼里是三个完全不同的变量,写代码的时一定要统一。

二、软性约定

硬性规则只是让你不报错,想要代码专业、好维护,下面这些行业共识一定要跟上。

不遵守软性的约定的后果是:恶心别人,坑自己。

约定 1,见名知意。 优先使用有意义的英文单词,别用拼音。比如 userName 就比 yhm 好一万倍。

无意义/拼音见名知意解析
xing(姓)lastName
ming(名)firstName
nlage
csrqbirthDate
zje(总金额)totalAmount / totalPriceamount 明确是金额,total 明确是汇总。
sl(数量)quantity / itemCount购物车场景下,itemCount 比 sl 精确一万倍。
pjf(平均分)averageScore / meanValue业务含义一目了然。

奇奇:变量起名到底是用一个单词好?还是多个单词好?

村长:很简单,一个词能说清楚,就用一个词;说不清楚,果断加词,短不代表好,清楚才是王道。

例如:

// 单个单词
name、age、count、price、time、list、result
// 多个单词
studentName、totalScore、loginTime、productPrice、errorMessage

布尔变量几乎总是多个单词,因为要表达"是不是/有没有/能不能"。 所以经常使用 is、has、can、should 开头

布尔变量名示例:

isMarried、hasPermission、canEdit、isActive、hasError、canLogin、isVisible、shouldNotify

约定 2,小驼峰命名法(camelCase)。 变量名的第一个单词全部小写,后面每个单词的首字母大写。比如:studentAge、maxCount、isAvailable。这是 C# 中局部变量和方法参数的通用惯例。

常见小驼峰命名法示例:

studentAge、maxCount、isAvailable
userScore、inputValue、currentPage
loginStatus、totalAmount、filePath
mousePosition、timerInterval

约定 3,帕斯卡命名法(PascalCase)。 每个单词的首字母都大写。比如:UserName、StudentManager。这种命名法通常用于类名、方法名、属性名等,和变量名的风格区分开,一眼就能看出谁是谁。

常见简单名称示例:

类名:UserName、StudentManager、UserInfo、Product、Order、GameConfig
方法名:GetScore、SaveData、Login、OpenFile、CalculateTotal
属性名:Age、FullName、IsEnabled、MaxValue、CurrentUser

记住了:小驼峰给普通变量,帕斯卡给类和方法,这是 C# 世界的潜规则。

结束语

好,变量咱们今天就聊到这儿。

本期视频就到这里。我是村长。听懂不算会,敲出来才算。

如果这个视频对你有帮助,记得点赞、收藏、关注。 感谢观看,我们下期见。

下期视频《变量的N 种用法》

练习1 输出四种数据类型

Console.WriteLine("Hello World");
Console.WriteLine(100);
Console.WriteLine(3.14);
Console.WriteLine('A');

练习2 唐诗 《咏柳》

要求:将唐诗 《咏柳》输出到控制台,要求:使用Write()方法输出,分行显示。

图案

 /\_/\ 
( o.o )
> ^ <
  / \__
( @\___
/ O
/ (_____/
/_____/ U

  ^-----^
( o o )
( = )
( )


下面给你一份 《C# Console ASCII 宠物库(教学版)》。 这些字符动物 非常适合中职课堂做控制台小游戏(电子宠物、猜动物、随机宠物等)。

我整理了 30种常用动物图标,学生可以直接 Console.WriteLine() 使用。


一、猫(Cat)

 /\_/\ 
( o.o )
> ^ <

C#:

Console.WriteLine(" /\\_/\\ ");
Console.WriteLine("( o.o )");
Console.WriteLine(" > ^ < ");

二、小狗(Dog)

  / \__
( @\___
/ O
/ (_____/
/_____/ U

三、小猪(Pig)

  ^-----^
( o o )
( = )
( )

四、兔子(Rabbit)

 (\_/)
( •_•)
/ >🍎

五、仓鼠(Hamster)

  (\_/)
( •_• )
/ >🍪

六、青蛙(Frog)

  @..@
(----)
( >__< )

七、小熊(Bear)

ʕ•ᴥ•ʔ

八、企鹅(Penguin)

  _~_
(o o)
/ V \
/( )\
^^ ^^

九、小鸡(Chicken)

 (\_/)
(•_•)
/ >🐛

十、小鱼(Fish)

><(((('>

十一、乌龟(Turtle)

   ___
_(o o)_
/ --- \

十二、狐狸(Fox)

 /\   /\
( o o )
==_Y_==
`-`

十三、猫头鹰(Owl)

 ,_,  
(0,0)
( )
" "

十四、小象(Elephant)

  /  \~~~/  \
( .. )
\ ---- /
| |

十五、小猴(Monkey)

  @..@
(----)
( >__< )

十六、蜗牛(Snail)

   ___
_/o o\_
/ --- \

十七、小蛇(Snake)

 ~~~~~~~~
~~~~~~
~~~~

十八、小牛(Cow)

 (oo)
/||\

十九、小羊(Sheep)

  __  
(oo)
/||\

二十、小老鼠(Mouse)

 ()__()
(='.'=)
(")_(")

二十一、龙(Dragon)

   / \  //\
/ \(( ))
( )\ /
\___/ V

二十二、恐龙(Dinosaur)

   __
/ _)
/ /
/_/

二十三、蝙蝠(Bat)

 /\ /\ 
( o.o )
> ^ <

二十四、蜘蛛(Spider)

 /\_/\ 
( o.o )
/| |\

二十五、小鸭(Duck)

  __
<(o )
( )
^^

二十六、小鹿(Deer)

 /\ /\ 
( o o )
( V )

二十七、小鸟(Bird)

  ,_,
(o,o)
( )
" "

二十八、小鲸鱼(Whale)

      __
___ / \__
<___/ )
\_____/

二十九、小马(Horse)

 //\
(( ))
\\//

三十、小恐龙(Cute Dino)

  __
(oo)
/||\

课堂使用示例(推荐)

可以随机生成宠物:

Random r = new Random();
int pet = r.Next(1,4);

switch(pet)
{
case 1:
Console.WriteLine("你的宠物是小猫");
Console.WriteLine(" /\\_/\\ ");
Console.WriteLine("( o.o )");
Console.WriteLine(" > ^ < ");
break;

case 2:
Console.WriteLine("你的宠物是小狗");
Console.WriteLine(" / \\__ ");
break;

case 3:
Console.WriteLine("你的宠物是小猪");
Console.WriteLine(" ^-----^ ");
break;
}

学生会感觉像:

随机宠物系统

课堂最受欢迎的5个宠物

老师经验排名:

1️⃣ 小猫 2️⃣ 小狗 3️⃣ 小熊 4️⃣ 企鹅 5️⃣ 兔子

学生会 非常喜欢


如果你愿意,我可以再给你一套 《C# 控制台 ASCII 动物动画库(20个会动的宠物)》,例如:

  • 🐱 猫眨眼
  • 🐶 狗摇尾巴
  • 🐟 鱼游动
  • 🐸 青蛙跳跃
  • 🐤 小鸡走路

课堂效果会 非常炸裂