Csharp-02
方法
方法的声明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20// 无返回值无参数
void Method1()
{
Console.WriteLine("Method1");
}
// 无返回值有参数
void Method2(int a)
{
Console.WriteLine(a);
}
// 有返回值无参数
int Method3()
{
return 1;
}
// 有返回值有参数
int Method4(int a)
{
return a;
}方法的调用
1
2
3
4
5
6
7
8// 无返回值无参数
Method1();
// 无返回值有参数
Method2(1);
// 有返回值无参数
int a = Method3();
// 有返回值有参数
int b = Method4(1);方法的重载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20// 无返回值无参数
void Method1()
{
Console.WriteLine("Method1");
}
// 无返回值有参数
void Method1(int a)
{
Console.WriteLine(a);
}
// 有返回值无参数
int Method1()
{
return 1;
}
// 有返回值有参数
int Method1(int a)
{
return a;
}方法的参数
值参数
1
2
3
4void Method1(int a)
{
Console.WriteLine(a);
}引用参数
1
2
3
4void Method1(ref int a)
{
Console.WriteLine(a);
}输出参数
1
2
3
4
5void Method1(out int a)
{
a = 1;
Console.WriteLine(a);
}可选参数
1
2
3
4void Method1(int a = 1)
{
Console.WriteLine(a);
}参数数组
1
2
3
4
5
6
7void Method1(params int[] a)
{
foreach (int i in a)
{
Console.WriteLine(i);
}
}
方法的修饰符
- public:公开的
- private:私有的
- internal:内部的
- protected:受保护的
- static:静态的
- virtual:虚方法
- override:重写方法
- abstract:抽象方法
- sealed:密封方法
- extern:外部方法
类
类的声明
1
2
3
4
5
6
7
8
9class Person
{
public string name;
public int age;
public void Say()
{
Console.WriteLine("name: " + name + ", age: " + age);
}
}类的实例化
1
2
3
4Person p = new Person();
p.name = "张三";
p.age = 18;
p.Say();类的访问修饰符
- public:公开的
- private:私有的
- internal:内部的
- protected:受保护的
类的成员修饰符
- static:静态的
- virtual:虚方法
- override:重写方法
- abstract:抽象方法
- sealed:密封方法
- extern:外部方法
类的构造函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24class Person
{
public string name;
public int age;
public Person()
{
Console.WriteLine("Person");
}
public Person(string name)
{
this.name = name;
Console.WriteLine("Person: " + name);
}
public Person(string name, int age)
{
this.name = name;
this.age = age;
Console.WriteLine("Person: " + name + ", " + age);
}
public void Say()
{
Console.WriteLine("name: " + name + ", age: " + age);
}
}类的析构函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28class Person
{
public string name;
public int age;
public Person()
{
Console.WriteLine("Person");
}
public Person(string name)
{
this.name = name;
Console.WriteLine("Person: " + name);
}
public Person(string name, int age)
{
this.name = name;
this.age = age;
Console.WriteLine("Person: " + name + ", " + age);
}
public void Say()
{
Console.WriteLine("name: " + name + ", age: " + age);
}
~Person()
{
Console.WriteLine("析构 Person");
}
}
结构体
结构体的声明
1
2
3
4
5
6
7
8
9struct Person
{
public string name;
public int age;
public void Say()
{
Console.WriteLine("name: " + name + ", age: " + age);
}
}结构体的实例化
1
2
3
4Person p = new Person();
p.name = "张三";
p.age = 18;
p.Say();结构体的访问修饰符
- public:公开的
- private:私有的
- internal:内部的
- protected:受保护的
结构体的成员修饰符
- static:静态的
- virtual:虚方法
- override:重写方法
- abstract:抽象方法
- sealed:密封方法
- extern:外部方法
结构体的构造函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20struct Person
{
public string name;
public int age;
public Person(string name)
{
this.name = name;
Console.WriteLine("Person: " + name);
}
public Person(string name, int age)
{
this.name = name;
this.age = age;
Console.WriteLine("Person: " + name + ", " + age);
}
public void Say()
{
Console.WriteLine("name: " + name + ", age: " + age);
}
}结构体的析构函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24struct Person
{
public string name;
public int age;
public Person(string name)
{
this.name = name;
Console.WriteLine("Person: " + name);
}
public Person(string name, int age)
{
this.name = name;
this.age = age;
Console.WriteLine("Person: " + name + ", " + age);
}
public void Say()
{
Console.WriteLine("name: " + name + ", age: " + age);
}
~Person()
{
Console.WriteLine("析构 Person");
}
}