【C#语言入门】03.C#词法、类型、变量、方法与算法简介

【C#语言入门】03.C#词法、类型、变量、方法与算法简介

一、构成C#语言的基本元素

  • 关键字(Keyword)
  • 操作符(Operator)
  • 标识符(Identifier)
    • 什么是合法的标识符(怎样阅读语言定义文档?)
    • 大小写规范
    • 命名规范
  • 标点符号
  • 文本(字面值)
    • 整数(多种后缀)
    • 实数(多种后缀)
    • 字符
    • 字符串
    • 布尔
    • 空(null)
  • 注释与空白
    • 单行
    • 多行(块注释)

前五种为标记(Token),意为对于编译器来说有意义的记号,编译器会识别会执行,但是注释与空白就会跳过。

1. 关键词

关键字是预定义的保留标识符,对编译器有特殊意义。第一个表列出了是 C# 程序任意部分中的保留标识符的关键字。 此主题中的第二个表列出了 C# 中的上下文关键字。 上下文关键字仅在一部分程序上下文中有特殊含义,可以在相应上下文范围之外用作标识符。

第一列第二列第三列第四列
asbtracteventnamespacestatic
asexplicitnewstring
baseextermnullstruct
boolfalseobjectswitch
breakfinallyoperatorthis
bytefixedoutthrow
casefloatoverridetrue
catchforparamstry
charforeachprivatetypeof
checkedgotoprotecteduint
classifpubliculong
constimplicitreadonlyunchecked
continueinrefunsafe
decimalintreturnushort
defaultinterfacesbyteusing
delegateinternalsealedvirtual
doisshortvoid
doublelocksizeofvolatile
elselongstackllocwhile
enum
上下文关键字
第一列第二列第三列第四列
addgetnotnullset
andglobalnuint非托管(函数指针调用约定)
aliasgrouponunmanaged(泛型类型约束)
ascendinginitorvalue
argsintoorderbyvar
asyncjoinpartial(类型)when(筛选条件)
awaitletpartial(方法)where(泛型类型约束)
by托管(函数指针调用约定)recordwhere(查询子句)
descendingnameofremovewith
dynamicnintselectyield
equalsnot
from

2. 操作符(Operator)

也叫作运算符,用来表达运算思想的符号。

运算符类别或名称
x.y、f(x)、a[i]、x?.y、x?[y]、x++、x–、x!、new、typeof、checked、unchecked、default、nameof、delegate、sizeof、stackalloc、x->y主要
+x、-x、x、~x、++x、–x、^x、(T)x、await、&&x、 * x、true 和 false一元
x…y范围
switch、withswitch 和 with 表达式
x * y、x / y、x % y乘法
x + y、x – y加法
x << y、x >> yShift
x < y、x > y、x <= y、x >= y、is、as关系和类型测试
x == y、x != y相等
x & y布尔逻辑 AND 或按位逻辑 AND
x ^ y布尔逻辑 XOR 或按位逻辑 XOR
xy
x && y条件“与”
x
x ?? yNull 合并运算符
c ? t : f条件运算符
x = y、x += y、x -= y、x * = y、x /= y、x %= y、x &= y、x= y、x ^= y、x <<= y、x >>= y、x ??= y、=>

3. 标识符(Identifier)

标识符即为名字,给程序中的一些起的名字就是标识符,例如变量、类(属性、方法、事件)、类的成员。

什么是合法的标识符?
  1. 首先不能与关键字冲突。
  2. 可以使用字母,数字和下划线组成标识符,但是不能用数字开头。
  3. 允许“@”字符作为前缀以使关键字能够用作标识符。
命名规范以及大小写规范

满足上述合法标识符的条件,只是说明编译器不会报错,但并不代表你的标识符的可读性很好,因此我们需要有一些额外的规范,来保证命名有意义,提升可读性,保证自己以及别人能够看得懂。

例如,变量名,类名,属性,名称空间最好为名词,方法最好为动词或动词短语。

例如,变量名使用驼峰命名法,方法名,类名,名称空间使用帕斯卡命名法。

4. 标点符号

各种括号()、{}、[]或者;或者,等等

5. 文本(字面值)

//整型,长整型范围大于整型
int x = 2;
long y = 3L;
//实数,双精度范围大于单精度范围
float x = 3.0F;
double y = 4.0;//double y = 4.0D;
//字符
char c = 'a';
//字符串
string str = "hello,world!";
//布尔
bool b = true;
bool b2 = false;
//空(null)
string str = null;

6. 注释与空白

空格加多了没事,但是必要的空格不能少,可以用空格进行调整位置,增强可读性。

注释是给程序员看的,要出现在该出现的地方,并不是说越多越好。注释除了有解释代码的作用外,还可以用作暂时让用不着的代码无效化。

//这是单行注释

/*
这是块注释
这是块注释
块注释无法嵌套使用
这是块注释
这是块注释
*/

二、初始类型、变量和方法

  • 初识类型(Type)
    • 也称为数据类型(Data Type)
  • 变量是存放数据的地方,简称“数据”
    • 变量的声明
    • 变量的使用
  • 方法(旧称函数)是处理数据的逻辑,又称“算法”
    • 方法的声明
    • 方法的调用
  • 程序 = 数据 + 算法
    • 有了变量和方法就可以写有意义的程序了

1. 初识类型

针对不同的数据,采取不同的存储方式和进行不同的处理。随着处理对象的复杂化,数据类型也要变得更丰富。数据类型的丰富程度直接反映了程序设计语言处理数据的能力。

var x = 3.0;//var为编译器自动识别数据类型
int y = 3;
//x ≠ y

2. 变量

变量是存放数据的地方,简称“数据”。变量定义的数据类型要和放进去的数据类型一致。

double x;
x = 3.0;

3. 方法

简单的理解为数据的加工厂,原料(数据)放进去,生产出想要的产品。

class Calculator
{
  public int Add(int a, int b)//方法的原料也称为函数参数,也要定义,生产出来的产品也要定义
  {
    int result = a + b;
    return result;
  }
}

当然有些加工厂不需要原料也能生产出一些东西。

class Calculator
{
  public string GetToday
  {
    int day = DateTime.Now.Day;
    return dat.ToString();
  }
}

还有些加工厂不产出东西。

class Calculator
{
  public void PrintSum(int a, int b)
  {
    int result =  a + b;
    Console.WriteLine(result);
    //定义为void,没有return
  }
}

三、算法简介

  • 循环初体验
  • 递归初体验

1. 循环

class Calculator
{
  public void PrintXTo1(int x)
  {
    for (int = x; i>0; i--)
    {
      Console.WriteLine(i);
    }
  }
}

2. 递归

class Calculator
{
  public void PrintXTo1(int x)
  {
    if (x==1)
    {
      Console.WriteLine(x);
    }else
    {
      Console.WriteLine(x);
      PrintXTo1(x-1);
    }
  }
}
  • 30
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值