C#访问修饰符是指在C#中,可以使用的访问修饰符来控制对类、方法、属性、字段和其他成员的访问。C#中有四种不同的访问修饰符:public、protected、internal和private。
public:public是最宽松的访问修饰符,它允踩从任何地方被调用。如果一个成员声明为public,则可以在应用程序内部和外部进行调用。
protected:protected是一个中等强度的访问修饰符,它允被子类和当前定义该成员的类中使用。如果一个成员声明为protected,则只能在当前定义该成员的类内部和子类内部进行调用。
internal:internal是一个中强度的访问修饰符,它允被当前应用程序内部使用。如果一个成员声明为internal,则只能在当前应用程序内部进行调用。
private:private是最强大的访问修饰符,它允仅能够在当前定义该成员的类内部使用。如果一个成员声明为private,则只能在当前定义该成员的类内部进行调用。
public class MyClass { public int x; // 可以在外部使申请 protected int y; // 可以圈子金子和本条直接使申请 internal int z; // 可以圈各各直接使申请 private int w; // 可令本条直掷使申请 }
类型或类型成员可以通过使用访问修饰符来限制其对其他类型的可访问性。
例如,我们可以设置一个方法的访问级别,使其只能在定义它的类型内部访问。以这种方式,我们知道该方法不使用,将在任何其他地方使用。
以下是访问修饰符的列表。
修饰符 | 描述 |
---|---|
public | 完全可及。 |
internal | 仅在包含装配体或朋友装配体内可访问。 |
private | 仅在包含类型中可访问。 |
protected | 只能在包含类型或子类中访问。 |
protected internal | 保护和内部可访问性的联合。 |
在下面的代码中,Class2可从组件外部访问; Class1不是:
class Class1 {} // Class1 is internal (default) public class Class2 {}
在下面的代码中,Class2将字段x暴露给同一程序集中的其他类型; Class1不:
class Class1 { int x; } // x is private (default) class Class2 { internal int x; }
子类中的函数可以调用methodA,但不能调用methodB:
class BaseClass { void methodB() {} // methodB is private (default) protected void methodA() {} } class Subclass : BaseClass { void Test1() { methodB(); // Error - cannot access methodB } void Test2() { methodA(); } }
当覆盖基类函数时,可重写函数必须是相同的。
例如:
class BaseClass { protected virtual void methodB() {} } class Subclass1 : BaseClass { protected override void methodB() {} } // OK class Subclass2 : BaseClass { public override void methodB() {} } // Error
C#枚举枚举是一种特殊的值类型,是指定的数字常量组。例子例如:public enum Direction { Left, Right, Top, Bottom } 我们可以...
C#条件运算符和||运算符测试与和或条件。!运算符表示不。以下代码使用and,not和or运算符创建布尔表达式。!cloudy(WeekDay || ...
C# if switchif语句语法对于使用过程语言进行任何编程的任何人都应该是非常直观的:if (condition)statement(s) elsestatement(s...
C# 预处理器指令预处理器指令为编译器提供有关代码区域的附加信息。最常见的预处理器指令是条件指令。例子:#define DEBUGclass ...