内部类访问 C#
本文关键字:访问 内部类 | 更新日期: 2023-09-27 18:33:33
这可能是一个非常简单的问题!但是我已经挠头一个小时了!我有两个文件如下:
- 组装1.cs
- 程序.cs
我想当我在类名之前使用internal
关键字时,我将无法在其他类中实例化它,对吧?
https://msdn.microsoft.com/en-us/library/7c5ka91b.aspx
但是为什么我在这里没有收到错误消息?我可能在这里错过了一些非常明显的东西。
// Assembly1.cs
namespace InternalTest
{
internal sealed class BaseClass
{
public static int intM = 0;
}
}
// Program.cs
using System;
namespace InternalTest
{
class Program
{
static void Main(string[] args)
{
var myBase = new BaseClass();
Console.ReadKey();
}
}
}
内部表示类在程序集内可访问。上面的类在同一程序集中,因此没有错误。如果您想查看错误,请按照以下步骤操作
1) 创建库项目
2) 在该项目中创建基类
3) 创建控制台项目
4)添加第一个项目dll的引用
5)现在尝试创建实例,您将看到错误
附加信息
如果要访问控制台项目中的内部成员,请在库项目的AssemblyInfo.cs中添加以下属性
[assembly:InternalsVisibleTo("[AssemblyNameOfConsoleProject]")]
因为这两个类都在同一个命名空间上。
//InternalTest
namespace InternalTest
{
internal sealed class BaseClass
{
public static int intM = 0;
}
}
//the same here InternalTest
namespace InternalTest
{
class Program
{
static void Main(string[] args)
{
}
}
}