类的声明:
声明一个类:创建一个类。class-declaration
创建一个对象、创建一个类的实例、实例化一个类。
当我们说类时:是声明一个类。
当我们说对象时:是创建一个类的实例,创建一个对象。
声明类的位置:
- 名称空间内声明类。
- 绝对不推荐:把类放在所有显式名称空间之外。(看起来像是所有名称空间以外,但是其实c#还有一个叫global的名称空间。)
- 类体里面。作为一个:成员类。
在C#与Java中,声明即定义。
但是在C++,声明和定义是分开的。C++编译器和链接器:多处使用一个类时,需要引用类的头文件。
类的访问级别:
为了演示效果:在解决方案中添加新项目:MyLib
在项目中新建文件夹名字叫MyNamespace,添加类:命名:Calculation。
类前面不加如何修饰符,默认是internal的。
namespace MyLib.MyNamespace
{
class Calculator
{
public double Add(double a, double b)
{
return a + b;
}
}
}
如何建立依赖关系?
在主项目中点击依赖项References。在解决方案中找到这个项目MyLib。即可完成引用。(A可以引用B,但是不允许B再去引用A,禁止循环引用。)
public是类访问级别修饰符。如果要在主程序中访问到我们的类方法,必须要在类前面加上public才可以访问得到类内的成员。
namespace MyLib.MyNamespace
{
public class Calculator
{
public double Add(double a, double b)
{
return a + b;
}
public void Report()
{
Console.WriteLine("Report test");
}
}
}
此时带有public可以在其他项目中引用后访问。
using System;
using MyLib.MyNamespace;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//MyLib.MyNamespace.Calculator cal = new MyLib.MyNamespace.Calculator();
Calculator cal = new Calculator();
double res = cal.Add(1.1, 2.2);
Console.WriteLine(res);
cal.Report();
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
}
如果不带有public,只能在项目自己内部访问。自己项目的一般称谓:装配集,装配件Assembly。
这节课内容少了点:就一句话,public类,项目之外可以引用,不加public默认就是internal,只能在项目内引用。
注意调试的一些坑:如果类库的建立和主程序的内核框架不同,是无法直接调用的,在引用中会出现一个黄色的感叹号!可以从项目属性中查看