在Windows下使用.Net做窗口应用比较方便。所以打算开始学一学C#。
数据类型
C#有以下几种简单数据类型:
- 有符号整型:
sbyte
,short
,int
,long
- 无符号整型:
byte
,ushort
,uint
,ulong
(前面的u可能是unsigned的缩写吧 - Unicode字符:
char
(官方文档说表示UTF-16代码单元) - IEEE二进制浮点:
float
,double
(哈哈还真有跟JS一样的精度丢失bug (经典0.1 + 0.2 != 0.3)) - 高精度十进制浮点数:
decimal
(范围比double略小,精度高,而且0.1+0.2==0.3了科科。赋值时要注意是0.1m,0.2m后面要带m,否则就是double了) - 布尔值:
bool
C++里的auto
跟C#的var
对应,智能类型推断,需要初始化。
判断
跟C一样的if语句
1 | if (表达式) {} |
逻辑预算符也是&&
,||
,!
。(与或非)
三元运算符也有。
a = a > b? a : b;
翻译:a等于什么?来看一下,a>b吗?大于的话就是a=a
,否则就是a=b
。
循环
while(表达式) {}
满足条件就循环。
do {}while(表达式);
先做一次看满不满足条件,满足就循环。
for(int i = 0; i <= n; i++)
for语句没变化
foreach(var num : nums)
这个跟C++的for(auto num : nums)
一样用法,枚举列表中每个元素。
2023/9/8更正,不能对num进行赋值操作,不能修改,只能读取。
不能重新分配 num 的值,因为它是 foreach 迭代的内部实现的一部分。
控制台输出
Console.Write()
输出内容
Console.WriteLine()
输出内容,会在末尾加个换行符\n
。
PS
Visual Stdio 2022对C#的intelligence code真是绝绝子,好用到翘jiojio。
按一下tab就补全了,写简单示例题的时候疯狂tab。