C#高级教程
通过本次课程,理解类的重要概念和相关知识,理解C#中高级类型(例如可空类型、泛型等),Lambda表达式和LINQ的原理和使用。
类的声明
在C#中,类是程序的基本组成部分,用于描述对象的行为和状态。类的声明方式有多种,包括非静态类、静态类、抽象类和封闭类。
非静态类
非静态类是可以被实例化的类,例如:
```
class NoStaticClass {}
```
静态类
静态类是不能被实例化的类,例如:
```
static class StaticClass {}
```
静态类只能包含静态成员,不能被实例化。
抽象类
抽象类是不能被实例化的类,例如:
```
abstract class AbstractClass {}
```
抽象类不能被实例化,必须被继承。
封闭类
封闭类是不能被继承的类,例如:
```
sealed class SealedClass {}
```
封闭类不能被继承。
成员修饰符
成员修饰符用于控制类成员的访问权限,包括public、private、protected和internal等。
public
public成员可以在任何地方访问,例如:
```
public int publicInt = 0;
```
private
private成员只能在类内部访问,例如:
```
private int privateInt = 0;
```
protected
protected成员可以在类内部或者子类访问,例如:
```
protected int protectedInt = 0;
```
internal
internal成员可以在程序集内部访问,例如:
```
internal int internalInt = 0;
```
protected internal
protected internal成员可以在类内部、子类或程序集内部访问,例如:
```
protected internal int protectedInternalInt = 0;
```
创建类的实例(对象)
可以使用new操作符创建类的实例(对象),例如:
```
NoStaticClass myClass1 = new NoStaticClass();
NoStaticClass myClass2 = new NoStaticClass(2);
```
字段
字段是与类或类的实例相关的变量,例如:
```
class Test
{
public int publicInt = 0;
private int privateInt = 0;
protected int protectedInt = 0;
internal int internalInt = 0;
protected internal int protectedInternalInt = 0;
}
```
字段可以有不同的访问权限,例如public、private、protected和internal等。
Lambda表达式
Lambda表达式是一种匿名函数,可以作为委托的实例,例如:
```
Func<int, int, int> add = (x, y) => x + y;
```
LINQ
LINQ(Language Integrated Query)是一种查询语言,用于查询和操作数据,例如:
```
var query = from c in customers
where c.Country == "USA"
select c;
```
通过本次课程,了解了C#中高级类型、Lambda表达式和LINQ的原理和使用,掌握了类的声明、成员修饰符、创建类的实例和字段的概念。