我向很多人问过这个问题,直到现在我都没有答案。
ASP.NET C#
项目树(文件和文件夹):
> (ROOT)
>
> Class MyAccess (namespace myproject.core)
>
> (Directory John)
------> Class MyJohn (namespace myproject.core.John)
------> Class JohnSecret (namespace myproject.core.John)
------> Class OtherJohnSecret (namespace myproject.core.John)
>
> (Directory Paul)
------> Class MyPaul (namespace myproject.core.Paul)
------> Class PaulSecret (namespace myproject.core.Paul)
我如何使用(公共(public)、私有(private)、 protected 、内部)????有这种行为:
例子:
我不喜欢的解决方案:
让约翰的 secret 成为 protected 遗产,成为 MyJohn
例子:
> protected JohnSecret
> internal MyJohn:JohnSecret
不好,因为如果我有 100 个类(class) secret ,我将需要以下内容:
> internal MyJohn:JohnSecret1, JohnSecret2,....,JohnSecret100
在类中有类:
> internal class MyJohn {
>
> internal string DoSomething(){}
>
> private class JohnSecret{}
> private class JohnSecret2{}
> private class JohnSecret3{}
>
> }
这不好,因为再一次,如果我有 100 个 secret ,我将拥有一个巨大的文件,我无法将该代码拆分到不同的源代码文件中。
谁能给出一个好的解决方案?
我很欣赏:)
非常感谢。
最佳答案
您应该采用您提出的第二种解决方案。对于您的可见性要求,它最适合 JohnSecret
, OtherJohnSecret
,等。阿尔。在 MyJohn
中定义类(class)。
如果您希望将类文件拆分为多个文件,可以使用 partial classes以实现这一目标并仍然保持您拥有的可见性要求。
例如:
> (Directory John)
> File "MyJohn.cs"
public partial class MyJohn
{
}
> File "JohnSecret.cs"
public partial class MyJohn
{
private class JohnSecret
{
}
}
> File "OtherJohnSecret.cs"
public partial class MyJohn
{
private class OtherJohnSecret
{
}
}
关于asp.net - C# 类/命名空间访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324629/