今天想整理一下访问修饰符,当然对老鸟来说不用介绍了,但是我相信对新人来说一定有必要说一下,
所以在网上查了一下,没有一个完整的介绍,除了概念就是概念,老鸟看了那些文字都要头疼,
所以决定今天整理出来用例子说明来为大家解释一下吧:
首先介绍一下类的修饰符
作为一个顶级类(即不是内部类)只能使用public和internal两种访问修饰符,它们的意义如下。
— public:所修饰的顶级类的可访问域是它所在的程序和任何引用该程序的程序,因此访问不受限制。
— internal:所修饰的顶级类的可访问域是定义它的程序。
public不必介绍哪都可以new一下,但是internal必须在自己的项目内使用,
这里有必要向大家介绍项目和程序集,简单点项目包括:控制台应用程序,Windows应用程序,类库(Class Library)等,而程序集叫Assembly(也就是我们创建项目中的AssemblyInfo.cs文件),
一个项目也就是一个程序集,Assembly用处很大,但与我们的专题无关,不做介绍。
介绍上面的目的为了说明,一个项目的internal无法在另一个项目中调用,代码:
class1:
class2:
上面我建立了两个项目,一个是类库,一个是控制台,
上面我在控制台class2引入了类库class1,这些操作简略,大家可以看到我上面的class1用了publi
所以在网上查了一下,没有一个完整的介绍,除了概念就是概念,老鸟看了那些文字都要头疼,
所以决定今天整理出来用例子说明来为大家解释一下吧:
首先介绍一下类的修饰符
作为一个顶级类(即不是内部类)只能使用public和internal两种访问修饰符,它们的意义如下。
— public:所修饰的顶级类的可访问域是它所在的程序和任何引用该程序的程序,因此访问不受限制。
— internal:所修饰的顶级类的可访问域是定义它的程序。
public不必介绍哪都可以new一下,但是internal必须在自己的项目内使用,
这里有必要向大家介绍项目和程序集,简单点项目包括:控制台应用程序,Windows应用程序,类库(Class Library)等,而程序集叫Assembly(也就是我们创建项目中的AssemblyInfo.cs文件),
一个项目也就是一个程序集,Assembly用处很大,但与我们的专题无关,不做介绍。
介绍上面的目的为了说明,一个项目的internal无法在另一个项目中调用,代码:
class1:
using
System;
using System.Collections.Generic;
using System.Text;
namespace xiaolei
{
//public class Class1
//{
//public int aa;
//}
internal class Class1
{
public int aa;
}
class Class11
{
public void bb()
{
Class1 cc = new Class1();
}
}
}
using System.Collections.Generic;
using System.Text;
namespace xiaolei
{
//public class Class1
//{
//public int aa;
//}
internal class Class1
{
public int aa;
}
class Class11
{
public void bb()
{
Class1 cc = new Class1();
}
}
}
class2:
using
System;
using System.Collections.Generic;
using System.Text;
namespace fanxing
{
class Application1
{
static void Main(string[] args)
{
xiaolei.Class1 aaa = new xiaolei.Class1();
System.Console.Read();
}
}
}
using System.Collections.Generic;
using System.Text;
namespace fanxing
{
class Application1
{
static void Main(string[] args)
{
xiaolei.Class1 aaa = new xiaolei.Class1();
System.Console.Read();
}
}
}
上面我在控制台class2引入了类库class1,这些操作简略,大家可以看到我上面的class1用了publi