C#学习笔记3
开发环境:vs2022
1. 构成C#语言的基本元素
-
关键字(Keyword)
C# Keywords和Contextual Keywords。在帮助文档里面查看——C# Keyword。
-
操作符(Operator)
加减乘除,异或这些。在帮助文档里面查看——C# Operators。 -
标识符(Identifier) 也就是命名
- 标识符要合法,不能和关键字冲突;
- 如果非要用关键字作为标识符,可以在关键字前面加 @;
- 可以用字母、数字和下划线组成标识符,但数字不能作为开头;
- 标识符可以有开始字符+后续字符组成;
- 汉语或者其他语言也可以做标识符,但是这样写不利于程序的可读性;
- 命名要有易读性;
- 命名规范:驼峰法和Pascal法。链接: link
-
标点符号
-
文本(字面值)
整数(多种后缀)、实数(多种后缀)、字符、字符串、布尔、空白(null) -
注释
- 单行://
- 多行:/……/
-
空白
- 多个空格编译器会自动删除成为一个空格、
- 手动调整格式:编辑——高级——设置文档格式
2. 关键字
-
可以自动识别所定义变量的类型。
输出为Int32var x = 3; Console.WriteLine(x.GetType().Name);
输出为Int64
var x = 3L; Console.WriteLine(x.GetType().Name);
输出为Double
var x = 3.0; Console.WriteLine(x.GetType().Name);
输出为Single,即单精度浮点型
var x = 3.0F; Console.WriteLine(x.GetType().Name);
3. C#中函数的简单定义和调用
- 三个例子
namespace MyExample { internal class Program { static void Main(string[] args) { Calculator c = new Calculator(); //引用变量,创建实例化 int x = c.Add(2, 3); //此处的写法和C语言略有不同 Console.WriteLine(x); Calculator b = new Calculator(); string y = b.Today(); Console.WriteLine(y); Calculator e = new Calculator(); c.PrintSum(4, 5); } class Calculator { public int Add(int a, int b) //public表示这个函数可以在class Calculator外部使用 { int result = a + b; return result; } public string Today() { int day = DateTime.Now.Day; //获取计算机上当前的日期 return day.ToString(); //将实例数值转换为字符串的形式 } public void PrintSum(int a,int b) //函数内直接打印 { int result = a + b; Console.WriteLine(result); } } } }
4. 使用递归计算1-100和的三种方式
- 方法一
namespace MyExample2 { internal class Program { static void Main(string[] args) { Calculator c = new Calculator(); int result = c.SumForm1TOX(100); //此处必须写成c.SumForm1TOX(100),不然无法找到,与c语言有区别 Console.WriteLine(result); } } class Calculator { //使用循环计算1-100的和 public int SumForm1TOX(int x) { int result = 0; for (int i = 0; i < x+1; i++) { result = result + i; } return result; } } }
- 方法二
//使用递归计算1-100的和 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 (x + 1) * x / 2; }
5. 空白实例
- 使用空白实例系统会报错
Form f = null; f.ShowDialog();
- 报错
6. 类型、变量和方法
类型
- 简介:类型又称数据类型,是数据在内存中存储时的“型号”。
- 类型在C#语言中的作用(慢慢了解,可以看说明书)
- 存储此类型变量所需的内存空间大小
- 此类型的值可表示的最大、最小值范围
- 此类型所包含的成员(如方法、属性、事件等)
- 此类型由何基类派生而来
- 程序运行的时候,此类型的变量在分配在内存的什么位置
- 此类型所允许的操作(运算)
- C#语言的类型系统
- C#的五大数据类型
- 类(Classes ): 如Windows, Form, Console, String
- 结构体(Structures ) :如Int32, Int64, Single, Double
- 枚举(Enumerations ):如HorizontalAlignment, Visibility
- 接口(Interfaces)(暂时不做研究)
- 委托(Delegates)(暂时不做研究)
- C#类型的派生谱系
- 上面的蓝色关键字为数据类型,也是最基本的数据类型
- 下面的黑色关键字为定义数据类型的关键字
- 面试询问C#的数据类型,满分回答: 分为引用类型和值类型两种,引用类型里面包含类、接口和委托类型,值类型分为结构体和枚举类型,他们共同以Object为基类型。
- 判断数据类型的三个方法
- 方法一
Type myType = typeof(Form); Console.WriteLine(myType.FullName); //显示Form类型的全名,可在文档里检索
- 方法二
Type myType = typeof(Form); Console.WriteLine(myType.IsClass); //让系统判断这个是不是类型是不是类
- 方法三
放到Form上,右键->转到定义 查看他是不是啥类型
- 方法一
- 枚举类型举例
三种选项:以最小化打开、正常窗口打开和最大化打开Form f = new Form(); f.WindowState = FormWindowState.Minimized; //选择以怎样的方式打开窗口:最小化,正常,最大化 f.ShowDialog();
- C#的五大数据类型
变量
-
简介:变量的用途是存储数据。实际上变量不仅表示了存储位置,并且每个变量都有一个类型,以决定什么样的值能够存入变量。
-
变量的类型
- 静态变量
具体介绍看大佬的文章:链接: linkpublic static int Amount;
- 实例变量
static void Main(string[] args) { Student stu = new Student(); stu.Age = 1; Console.WriteLine(stu.Age); } class Student { public int Age; }
- 数组元素
int[] arr = new int[100];//注意这个创建方式和C语言的区别 arr[0] = 1; Console.WriteLine(arr[0]);
- 值参数变量
public double Add(double a, double b) //double a, double称为值参数变量 { double result = a + b; return result; }
- 引用参数变量(后面讨论)
public double Add(ref double a, ref double b) //double a, double b前面用ref修饰为引用参数变量 { double result = a + b; return result; }
- 输出参数变量(后面讨论)
public double Add(out double a, out double b) //double a, double b前面用out修饰为输出参数变量 { double result = a + b; return result; }
- 局部变量
static void Main(string[] args) { //局部变量:方法体内声明的变量 int x; x = 100; Console.WriteLine(x); }
- 局部变量就是方法体(函数体)里声明的变量· 变量的声明
- 狭义的变量指局部变量
- 局部变量在栈上分配内存
- 静态变量
-
变量的声明
有效的修饰符组合opt 类型 变量名 初始化器opt
(opt表示可以省略)public static int a = 20; int b = 20; int c = 10, d = 20; //推荐这样写,可读性差
-
总结来说: 变量是以变量名所对应的内存地址为起点、以其数据类型所要求的存储空为长度的一块内存区域。
-
值类型和引用类型
具体介绍看大佬的文章:链接: link -
C#中变量的默认值为0
方法
方法(函数)是处理数据的逻辑,又称“算法”。
参考链接:链接: link