这次学习真正用上了Visual Studio 2015 (之前都是在网页上用.NET编译器)。
本次学习了C#的知识如下:
可空类型、数组(Array)、字符串(Array)、结构体(Struct)、枚举(Enum)、
类(Class)、继承、多态性、接口(Interface)、命名空间(Namespace)、
预处理指令、异常处理、文件输入输出。
下面贴代码,代码量略大,用了 #region 把注释分类都已经做好了,在VS上看着很清爽。
网页上反而看着乱糟糟,所以直接复制到VS下运行吧。
从Main里面挨个对照看下来就行,不用多讲。
主程序文件下Main:
#define PI //预处理指令
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using space_1; //using指令:引入命名空间
using othername = space_2; //using给space_2起别名
using space_1.space_1_1; //嵌套内命名空间用 ( . ) 可以访问
using Practice;
namespace Practice
{
#region 按输出传递参数
class count
{
public void values(out int i)
{
int j = 5;
i = j;
}
}
#endregion
class Program
{
static void Main(string[] args)
{
#region 预处理
/*#define 它用于定义一系列成为符号的字符。
*#if 它用于测试符号是否为真。
*#else 它用于创建复合条件指令,与 #if 一起使用。
*#elif 它用于创建复合条件指令。
*#endif 指定一个条件指令的结束。
*#line 它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。
*#error 它允许从代码的指定位置生成一个错误。
*#warning 它允许从代码的指定位置生成一级警告。
*#region 它可以让您在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块。*/
#if (PI)
Console.WriteLine("PI is defined !");
#else
Console.writeLine("PI is defined !");
#endif
#endregion
#region 可空类型
//Nullable nullable = new Nullable();
//nullable.single_question_mark();
//nullable.double_question_mark();
#endregion
#region 数组
array A = new array();
A.Array();
#endregion
#region 结构体
Books Book1 = new Books(); /* 声明 Book1,类型为 Book */
Books Book2 = new Books(); /* 声明 Book2,类型为 Book */
/* book 1 详述 */
Book1.getValues("C Programming",
"Nuha Ali", "C Programming Tutorial", 6495407);
/* book 2 详述 */
Book2.getValues("Telecom Billing",
"Zara Ali", "Telecom Billing Tutorial", 6495700);
/* 打印 Book1 信息 */
Book1.display();
/* 打印 Book2 信息 */
Book2.display();
#endregion
#region 枚举
Enum_function en = new Enum_function(10086);
en.show_week();
#endregion
#region 静态成员
/*类的静态变量可以直接访问,不需要创建类的实例*/
Static_member.number++;
Console.WriteLine("number:{0}", Static_member.number);
/*成员函数声明为 static。这样的函数只能访问静态变量。静态函数在对象被创建之前就已经存在。*/
Console.WriteLine("number:{0}", Static_member.Static_getNumber());
Static_member stc1 = new Static_member();
Static_member stc2 = new Static_member();
stc1.add();
stc2.add();
Console.WriteLine("Stc1:{0} , Stc2:{0}", stc1.getNumber(), stc2.getNumber());
#endregion
#region 类的继承与基类的初始化
Son s = new Son(5, 7);
s.getSon_HW();
s.getFather_HW();
#endregion
#region 多重继承
Rectangles Rect = new Rectangles();
int area;
Rect.setWidth(5);
Rect.setHeight(7);
area = Rect.getArea();
// 打印对象的面积
Console.WriteLine("总面积: {0}", Rect.getArea());
Console.WriteLine("油漆总成本: ${0}", Rect.getCost(area));
#endregion
#region C# 多态性 (函数重载 / 运算符重载 | 抽象类 / 虚方法)
/*多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。*/
/*多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。*/
/*静态多态性 包括