Csharp-03

错误处理

如果程序中出现了错误,就会抛出异常。如果没有处理异常,程序就会终止。

try-catch

1
2
3
4
5
6
7
8
try
{
// 可能会出现异常的代码
}
catch (Exception ex)
{
// 出现异常时执行的代码
}

finally

1
2
3
4
5
6
7
8
9
10
11
12
try
{
// 可能会出现异常的代码
}
catch (Exception ex)
{
// 出现异常时执行的代码
}
finally
{
// 不管是否出现异常都会执行的代码
}

throw

1
2
3
4
5
6
7
8
9
10
11
12
13
try
{
// 可能会出现异常的代码
throw new Exception("自定义异常");
}
catch (Exception ex)
{
// 出现异常时执行的代码
}
finally
{
// 不管是否出现异常都会执行的代码
}

自定义异常

1
2
3
4
5
6
public class MyException : Exception
{
public MyException(string message) : base(message)
{
}
}

e.g. 除数为 0 时会抛出异常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
try
{
int a = 10;
int b = 0;
int c = a / b;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.WriteLine("finally");
}

OOP

在面向对象编程中,类是一种模板,用于创建对象。对象是类的实例。

面向对象是一种思想,它将对象作为程序的基本单元,将程序和数据封装在对象中。

我学习了很多门语言了,故我对面向对象编程有了一定的了解。

不再赘述。

定义类

1
2
3
4
5
6
7
8
9
class Person
{
public string name;
public int age;
public void SayHello()
{
Console.WriteLine("Hello");
}
}

创建对象

1
2
3
4
Person p = new Person();
p.name = "Tom";
p.age = 20;
p.SayHello();

构造函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Person
{
public string name;
public int age;
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
public void SayHello()
{
Console.WriteLine("Hello");
}
}

Static

静态成员属于类,而不属于类的实例。静态成员在类加载时就会被初始化。

静态字段

1
2
3
4
5
6
7
8
class Person
{
public static int count;
public Person()
{
count++;
}
}

e.g.

1
2
3
Person p1 = new Person();
Person p2 = new Person();
Console.WriteLine(Person.count);

静态方法

1
2
3
4
5
6
7
class Person
{
public static void SayHello()
{
Console.WriteLine("Hello");
}
}

e.g.

1
Person.SayHello();

代码抽离

命名空间

1
2
3
4
5
6
namespace MyNamespace
{
class MyClass
{
}
}

引用命名空间

1
using MyNamespace;

e.g.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;

namespace MyNamespace
{
class MyClass
{
public void SayHello()
{
Console.WriteLine("Hello");
}
}
}

class Program
{
static void Main(string[] args)
{
MyClass mc = new MyClass();
mc.SayHello();
}
}