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

第五课 C#语言基本元素概览,初始类型,变量与方法,算法简介

熟悉C#语言要求:对构成C#语言的基本元素,随便拿出一个你都认识,对于常见基本元素,都能正确使用它

精通C#语言要求:对于构成C#语言的基本元素,随便拿出一个都会使用,对于常用基本元素,你不但会使用,还不会出错时要在更深层次理解这些基本元素,了解背后运行的机制

文章目录

  • 构成C#语言的基本元素
    • 标记(Token)——六种基本元素
      • 关键字(Keyword)—词汇
      • 操作符(Opertator)—运算符
      • 标识符(Identifier)—标记
      • 标点符号
      • 文本(字面值)
      • 注释与空白
  • 简要介绍类型、变量与方法
      • 初始类型(Type)
      • 变量
      • 方法
  • 算法简介
      • 作业

构成C#语言的基本元素

标记(Token)——六种基本元素

关键字(Keyword)—词汇

构成一门编程语言的基本词汇,汉语常用词汇量七八万,英语常用词汇量也是七八万,C#是高级编程语言,它设计的初衷是用近似人类自然语言的语法,来表达编程逻辑,所以C#语言是人类自然语言一个非常非常小的子集,小到它的词汇量只要能够表达人类逻辑思维就行了,多余词汇就去掉不要了,C#语言有接近一百个词汇(关键字)

image-20240703042611397

注意:

1,有些关键字有多个用途

2,关键字是按逻辑分组的

image-20240703043533021

操作符(Opertator)—运算符

操作符也叫运算符,顾名思义是用来表达运算思想的符号,一共三四十个,分为以下几类:

Primary:基本操作符

x.y 点操作符

f(x) a[x] x++ x-- new typeof checked unchecked default(T) delegate sizeof ->

Unary:一元运算符,单目运算符,只能去操作一个操作数

+x -x !x ~x ++x —x (T)x &x *x

Multiplicative:乘法性操作符

x*y x/y x%y

Additive:加法性操作符

x+y x-y

shift: 位移(将内存中的一个数向左移向右移)

x<>y

Relational and type testing:关系操作符(比大小)和类型检验操作符(检验一个对象到底是不是一个类的实例)

xy x<=y x>=y is as

Equality:相等性操作符

x==y x != y

Logical AND: x&y

Logical XOR: x^y

Logical OR: x|y

Conditional AND : x && y

Conditional OR: x||y

Null-coalescing: x??y

Conditional: ?:

Assignment and lambda expression:

x=y x+=y x-=y x*=y x/=y x%=y x&=y x|=y

x^=y x<<=y x>>=y =>

标识符(Identifier)—标记

什么是标识符

俗话来说就是名字,取名起名字。给变量,类,类的成员(属性,方法,事件)起的名字都叫标识符,就像给人取名字有规范一样,给变量,类,类的成员起名字也有严格的规范

什么是合法的标识符?

1.首先一个标识符不能跟关键字冲突,关键字又叫保留字(这门编程语言已经把这个单词保留了,不能把这个单词当作标识符使用)

2.可以用字母(包括大写字母小写字母),数字和下划线,来组成标识符,但是不能拿数字开头,可以拿字母和下划线开头

符合这些规范的标识符是合法标识符

例外:如果想拿关键字当标识符,前面加上@符号

——怎样阅读C#语言定义文档(C#语言里的宪法)

image-20240703070307765

大小写规范

驼峰命名法:几个单词合一起,头一个单词首字母小写,后面的单词开头字母大写,这叫驼峰法,变量名都是用驼峰法

帕斯卡命名法:构成标识符的每个单词的首字母大写,其他字母都小写。名称空间名,类名,方法名都是用这个方法命名

命名规范

在给变量,类,类的成员命名的时候,要求变量名,类名,类的成员名要有意义,保证代码的可读性强。

对类命名的时候,类的名字一定要是一个名词

对类的成员命名的时候,属性一定要是一个名词

方法一定要是一个动词,或者动词短语,因为它表示一个类能够做什么

标点符号

; {}

文本(字面值)

(1)整数

int x=2; //普通整型:用32个比特位存储这个整数

long y=3L; //长整型:整数加上后缀L,变成长整型,用64个比特位存储3这个整数

它们是用二进制来表示的

(2)实数(小数)

float x= 3.0; //用32个比特位表示一个浮点数

double y=4.0D; //用64个比特位表示一个浮点数

(3)字符

char c=‘a’; //单引号里只能有一个字符,为一个字符类型的变量赋值

(4)字符串

string str=“ABCDE”; // 双引号

string str=“a”;

区别:字符和字符串,类型完全不同

(5)布尔

bool b=true;

bool b2=false;

左边的是变量,右边的是文本

(6)空(null)

关键字,操作符,标识符,标点符号,文本统称为标记(Token),标记就是对于编译器来说,有意义的记号,编译器能够识别出这些东西

注释与空白

单行注释 //

块注释

/* string str = null;
Form f = null;
f.ShowDialog();
*/

空白

Form f = new Form();
f.ShowDialog();

编译器会把注释和空白忽略掉,注释与空白对于编译器来说没有意义,所以不算在标记(Tonken)之内

简要介绍类型、变量与方法

初始类型(Type)

也称数据类型(Data Type)

  //var x = 3;   //Int32//Console.WriteLine(x.GetType().Name);//var x = 3L;   //Int64//Console.WriteLine(x.GetType().Name);//数据类型不一样,在内存中存储的形式不一样//var x = 3.0;   //Double//Console.WriteLine(x.GetType().Name);var x = 3.0F;   //Single:单精度浮点型Console.WriteLine(x.GetType().Name);//var自动获得变量的类型int x;x = 100;Console.WriteLine(x.GetType().Name);float x1;x1 = 3.0F;   //Single,后面要加f,大小写均可Console.WriteLine(x1.GetType().Name); Double x2;x2= 3.0;      //Double Console.WriteLine(x2.GetType().Name);

变量

变量是存放数据的地方,简称“数据”

声明变量格式

变量类型 变量名=初始值;

变量类型有14种

a.有符号的整型变量
能存储正负数和0 下面给出大概范围(赋值时超出范围会报错)

sbyte -128~127
int -21亿~21亿
short -32768~32767
long -9百万兆~9百万兆
示例代码

sbyte a = 1;Console.WriteLine("存储的数:"+a); //输出之间的连接用+

b.无符号的整型变量
能存储一定范围0和正数

byte 0~255
uint 0~42亿
ushort 0~65535
ulong 0~18百万兆
c.浮点数
float 存储7或8位有效数字,具体取决于编译器 四舍五入 从左到右非0数开始算有效数字
double 存储15~17位有效数字 C#中声明小数默认double类型
decimal 存储27~28位

float f = 0.1234f; //后面要加f 大小写均可double d = 0.12456434;decimal de = 0.124543534234t254m; //后面要加m 大小写均可

d.特殊类型
bool 变量值为true或false 表示真假数据类型
char 存储单个字符 单引号括住要赋的值
string 存储字符串 双引号括住要赋的值

string s1="hello", s2="world", s3="good"; //数据类型相同的多个变量可以同时声明

方法

旧称函数,成员函数,是处理数据的逻辑,又称为“算法”。方法可以理解为数据的加工厂,你把原料送进去,加工厂加工后把原料返还给你,这就是方法,方法就是数据的加工厂

方法的声明

方法的调用

三类常见的方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace MyExample3
{class Program{static void Main(string[] args){//方法的声明//方法的调用Caculator c = new Caculator();//int x= c.Add(2, 3);// Console.WriteLine(x);//string str = c.Today();//Console.WriteLine(str);c.PrintSum(4, 6);}}class   Caculator{//有数据输入,有数据输出public int Add(int a, int b){     //定义方法,为了能够在类的外面能够访问方法,要加上publicint result = a + b;return result;  //把结果拿到后返回给调用方法的人}//2.没有数据输入,有数据输出public string Today(){int day = DateTime.Now.Day;return day.ToString();}//3.有数据输入,没有数据输出,返回类型要用voidpublic void PrintSum(int a,int b){int result = a + b;Console.WriteLine(result);}}
}

程序=数据+算法

有了变量和方法就可以写有意义的程序了

算法简介

循环

递归

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace MyExample2
{class Program{static void Main(string[] args){Caculator c = new Caculator();int result = c.SumForm1ToX(3);Console.WriteLine(result);}}class Caculator{// 循环思想:占用内存比较少//public int SumForm1ToX(int x)// {//     int result = 0;//     for (int i =1; i < x+1; i++)//     {//          result = result + i;//     }//     return result;// }//递归思想;占用内存比较多//public int SumForm1ToX(int x)//{//    if (x==1)//    {//        return 1;//    }//    else//    {//        int result = x + SumForm1ToX(x - 1);//        return result;//    }//}public int SumForm1ToX(int x){//数学算式return (1 + x) * x / 2;}}
}

作业

image-20240704182448725

http://www.xdnf.cn/news/1490851.html

相关文章:

  • TDengine 选择函数 BOTTOM() 用户手册
  • Lua > OpenResty HelloWorld
  • [Android]RecycleView的item用法
  • C++ Linux平台开发
  • 如何通过日志先行原则保障数据持久化:Redis AOF 和 MySQL redo log 的对比
  • 【基于yolo和web的垃圾分类系统】
  • pycharm设置编辑区字体大小
  • 408考研——栈代码题常见套路总结
  • Caffeine Count-Min Sketch TinyLFU实现:FrequencySketch
  • 临床研究三千问——临床研究体系的3个维度(8)
  • JAVA:IO流非文本形式文件拷贝
  • 基于ResNet50的智能垃圾分类系统
  • 软件工程:DO-178中的适航要求核心要素
  • docker,本地目录挂载
  • 计算机视觉(十):ROI
  • 元器件--USB TypC接口
  • hot100链表类题目
  • [iOS] push 和 present Controller 的区别
  • FMI(Functional Mock-up Interface,功能模型接口)
  • 基于蚁群算法的量子电路调度研究(Matlab平台)
  • 9.7需求
  • 【Docker】Docker基础
  • Java ConcurrentHashMap 底层原理与线程安全机制深度解析
  • 【PCIe EP 设备入门学习专栏 -- 8.2 PCIe EP 寄存器配置空间介绍】
  • 用博图FB类比c#中sdk的api
  • leetcode 912 排序数组(归并排序)
  • Rocky Linux 10 设置固定IP
  • 对分库分表的实战经验
  • 数据结构 课设
  • hot100-动态规划