文章目录
项目地址
- 教程作者:
- 教程地址:
- 代码仓库地址:
- 所用到的框架和插件:
dbt
airflow
一、基础50
1.1 new keyword
- new operator
- new modifier
- new constraint
1.2 static class vs. static method
1. static class
- 只能包含静态成员(字段、方法、属性、事件)
- 不能实例化(new 不出来)
- 不能继承或被继承(sealed + abstract 的结合体)
- 默认是 sealed(防止继承)
- 在程序第一次使用时,CLR 会初始化一次(静态构造函数)
2. static method
- 属于类的本身,而不是对象成员
- 不能访问实例成员
3. static constructor 静态构造函数
- 没有访问修饰符,没有参数
- CLR 在 第一次访问类 时调用一次
- 用于初始化静态字段
- 不能手动调用
public class Logger
{
public static string FilePath;
static Logger()
{
FilePath = "log.txt";
Console.WriteLine("Static constructor called");
}
}
4. 静态成员的生命周期
静态字段在 应用程序域(AppDomain)级别唯一
1.3 LinQ
1.what is LinQ
- LINQ is a set of technologies that allow simple and efficient querying over different kinds of data
- There are two ways of querying data: ①query syntax ;② method syntax
2. List、IEnumerable、IQueryable
- List → 具体集合类,数据已经在内存。
- IEnumerable → 内存中逐个枚举,延迟执行,适合集合操作。
- IQueryable → 针对数据库等远程源,查询会被翻译成 SQL 执行,更高效。
3. 在数据库里用 IEnumerable
- 如果你在数据库中使用 IEnumerable,查询会在内存中执行,导致先把整张表的数据拉到本地再过滤,非常低效;
- 而 IQueryable 会把查询翻译成 SQL 在数据库端执行,性能更好。
1.4 ==和equals
1. ==
- == 默认比较对象引用,值类型比较值
- 用途:检查 两个对象的引用是否相同(默认情况下)。
- 可被重载:像 string、int 等类型重载了 ==,会比较值而不是引用。
- 适合:值类型或经过重载的引用类型。
2. Equals
- Equals 默认也比较引用,但可以重写来比较对象的逻辑内容
class Person
{
public string Name { get; set; }
public override bool Equals(object obj)
{
return obj is Person p && this.Name == p.Name;
}
}