gpt4 book ai didi

c# - 内部类访问修饰符不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:21 24 4
gpt4 key购买 nike

我真的不明白为什么,但是似乎内部访问修饰符不起作用:S

我看了这个教程:
http://msdn.microsoft.com/en-us/library/7c5ka91b(v=vs.110).aspx

但是对我来说,它可以编译。
另外,我有一本书买了Illustrated C#2012。作者解释了内部类,等等。。。但是,它什么也没做。

这是我的完整代码,即使使用内部访问也可以使用。

//Program.cs
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Class1 myclass = new Class1(); //works
myclass.display(); //works
myclass.display2(); //works even though its not public :S
Console.Read();
}
}
}


--

//Class1.cs
namespace ConsoleApplication1
{
internal class Class1
{
public void display()
{
Console.WriteLine("display()");
}

internal void display2()
{
Console.WriteLine("display2()");
}
}
}


我什至可以访问内部void display2()函数:S

最佳答案

internal表示“同一程序集中的任何内容都可以使用”。

由于您的Class1类和Program类在同一程序集中,因此Program类可以访问display2()。

我认为您不小心将它们放在了同一组件中。如果仔细查看Microsoft的示例代码,您会看到它显示为“ Assembly1.cs”和“ Assembly2.cs”

如果使用的是Visual Studio,则用其他程序集进行测试的最简单方法是在同一解决方案中创建一个新的类库项目。这将被视为一个单独的程序集。您必须将对新项目的引用添加到主项目中(通过“添加引用”,然后通过“解决方案”选项卡)。

如果您需要更多信息,请输入a Stack Overflow question about "What's an assembly?"

关于c# - 内部类访问修饰符不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15586203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com