C#语言入门详解

前六章的笔记,前六章是对技术的基本讲解,并没有深入详解
第一章 基本常识
一、学习路径

C#应用较为广泛,性能较差。C++较底层较难,JAVA主要用来编写Web与移动设备。
框架是已经按一定逻辑所组建的类库,类库可以直接用来引用从而避免重复的编程。
Web是一种远程计算的技术。
集成开发环境。Visual Studio 所见即所得

第二章
1.捷径
生产力=知识+练习+反思
msdn的代码实例读代码仿写
学习原则:先写(感官)后看(原理)、在别人的基础上实现更高功能(先学着使用别人的功能在实现自己的逻辑)、学以致用(紧扣工作)
2.hello world
1.
解决方案(Solution)-大问题
项目(Project)-大问题划分出具体小问 题
2.

星号为热门技术
3.各类应用程序
见程序
第三章class与namespace
一、class,namespace
1.class(程序主体)
- C#完全面向对象,水蓝色。程序在这里也是各类。
- 数据结构,整合字段与方法。
构建:类实例(对象object):instance
支持:(派生类derived class 专用化基类base class)
继承:inheritance 多态:polymorphism
2.namespace
将class进行分类,树形结构,
在别的引用空间中要使用using才能调用对应方法。
文档找寻类与命名空间的从属关系。
先用类后通过ctrl+.或者alt+entre自动添加命名空间。
不同的命名空间有的类同名冲突,
eg.
System.IO.Path
与
System.Window.Shape.Path
二、类库(class library)的引用
保存名称空间。类库引用是保证其实用的物理基础。
- reference可以看一个项目的所有引用,可以查看所有命名空间。

- DLL引用(黑盒引用,无源代码)
通过Assembly(程序集、装配件)进行添加引用。
通过浏览添加引用。
NuGet添加引用,解决复杂的底层引用,相当于类库包,将一系列所依赖度的类库全部添加。添加Nuget
- 项目引用(白盒引用,有源代码)
先要确定该解决方案包含着该类库。然后通过项目引用。
原因:一个项目可以被多个解决方案。(Project的重用)
三、依赖关系(耦合关系)
因引用与调用而起。
1.高内聚:相关功能放一个类
低耦合:类与类之间的依赖
2.UML(通用建模语言)类图
赖子-》被依赖
四、排除错误
排错一定要找到root cause,切忌补丁上面打补丁。
第四章 类,对象,类成员
一、class
抽象现实事物的模型。
去伪(不需要的功能)存真(需要的功能)
表(interface接口)里(封装逻辑)
二、类与对象
1.对象(实例 instance)类实例化后内存中实体
2.new
3.引用变量与实例的关系
实例可以没有引用变量,一般会立刻被系统清除
多个引用变量可以对应同一个实例。其方式有一根“绳子”与不同“绳子”
三、类的成员
1、属性properties
存储数据,表示状态
2、方法Methods
操作属性的算法
3、事件 (切忌滥用)Events
类用于出发其他对象或类的机制
4.MSDN(help view)
注意看remarks,其对类的功能有重要描述。
================================================
注意字段与属性
private string m_name; //字段 field
public string Name //属性,它含有代码块
{get { return m_name; //读取(返回m_name值)}
set { m_name = value; //为m_name赋值}}
关于后续的代码实例,目前的.net6.0 EntityFrameworkCore、ADO.NET entitydata已经无法使用类似操作进行控制数据库了
需要使用.net framework 与EntityFramework
================================================
四、静态成员与实例成员
1.静态成员static
类的成员,针对的是类、反应类的特性
2.实例成员(非静态)
对象的成员、针对的是成员、是具体的反应成员的特性
3.绑定(Binding)
关联成员类或者对象
早绑定(编译器知道)
晚绑定(动态语言、编译器不知道)
第五章 C#语言基本元素概览、类型变量方法、算法
1.基本元素
- 关键字Keyword:

上下文关键字Contextual Keywords

- 操作符Operator:表明运算
参考C# reference
- 标识符Identifier:
字符下划线开头、@+keyword才能够作为标识符
规范:要含有意义、变量名用驼峰法、方法名用Pascal法
- 标点符号:不参与运算
- 文本(字面值):int x =2;中2就是字面值(整数、实数、布尔、null、字符、字符串等都可以)
=============================================
以上为标记(Token)
2.类型变量与方法
类型(type):
变量:存储数据
方法(函数算法):处理数据
3.算法简介
循环
递归