举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > c#访问修饰符的权限 C# 访问修饰符

c#访问修饰符的权限 C# 访问修饰符

2023-02-23 20:18 C#教程

c#访问修饰符的权限 C# 访问修饰符

c#访问修饰符的权限

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; // 可令本条直掷使申请 

    }   

C# 访问修饰符

C#访问修饰符

类型或类型成员可以通过使用访问修饰符来限制其对其他类型的可访问性。

例如,我们可以设置一个方法的访问级别,使其只能在定义它的类型内部访问。以这种方式,我们知道该方法不使用,将在任何其他地方使用。

以下是访问修饰符的列表。

修饰符描述
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; 
} 

例2

子类中的函数可以调用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#访问修饰符的权限 C# 访问修饰符全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  • c#枚举类型enum用法 C# 枚举

    c#枚举类型enum用法 C# 枚举

    2023-02-28 C#教程

    C#枚举枚举是一种特殊的值类型,是指定的数字常量组。例子例如:public enum Direction { Left, Right, Top, Bottom } 我们可以...

  • C# 嵌套类型

    C# 嵌套类型

    2023-02-23 C#教程

    C#嵌套类型嵌套类型在另一个类型的范围内声明。例如:public class Main { public class Nested { } // Nested class public enu...

  • c#条件运算符 C# 条件运算符

    c#条件运算符 C# 条件运算符

    2023-02-25 C#教程

    C#条件运算符和||运算符测试与和或条件。!运算符表示不。以下代码使用and,not和or运算符创建布尔表达式。!cloudy(WeekDay || ...

  • c#switch case语句 C# if switch语句

    c#switch case语句 C# if switch语句

    2023-02-24 C#教程

    C# if switchif语句语法对于使用过程语言进行任何编程的任何人都应该是非常直观的:if (condition)statement(s) elsestatement(s...

  • c#预处理指令 C# 预处理器指令

    c#预处理指令 C# 预处理器指令

    2023-02-27 C#教程

    C# 预处理器指令预处理器指令为编译器提供有关代码区域的附加信息。最常见的预处理器指令是条件指令。例子:#define DEBUGclass ...

© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部