Xav*_*ppé 1 c# oop visual-studio
这里很直接.我想知道什么时候c#(可能还有任何oo语言)的课程都没有"公开","私密","受保护"......
我问这个问题,因为当我在Visual Studio中创建一个类时,它会生成一个没有可访问性修饰符的类存根,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace myNamespace
{
class myClass
{
}
}
Run Code Online (Sandbox Code Playgroud)
每次我不太注意这部分代码并在其他地方引用它,最后运行并得到一个不一致的可访问性错误.
那么在什么情况下,一个班级可以,也许应该只是"阶级"而不是公开或任何形式?我很难找到一个好东西的地方.
是否有默认的辅助功能修改器?
C#中的一般规则是"默认为私有,因为您可以明确声明它".所以:
namespace Foo
{
class Bar // Implicitly internal class Bar
{
int x; // Implicitly private int x
void Baz() {} // Implicitly private void Baz() {}
class Nested // Implicitly private class Nested
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
...您不能将顶级(非嵌套)类声明为private,但您可以将嵌套类声明为私有.
此规则被破坏的唯一情况是使用属性,其中getter或setter的默认值"与整体属性声明相同",并且您只能在getter/setter上指定更严格的修饰符.例如:
internal string Foo { get; private set; }
Run Code Online (Sandbox Code Playgroud)
有内部吸气剂.但是整体属性遵循第一条规则 - 因此它默认为私有.
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |