浅谈C#基础之类的访问修饰符
C#中共有5种访问修饰符,分别为public
、private
、protected
、internal
和protected internal
。不同的访问修饰符可以在不同的范围内控制类、方法、属性、字段及其他成员的可访问性。
public访问修饰符
public
访问修饰符用于指定一个类、方法、属性或字段可以从任何其他类(包括其他项目中的类)或方法中访问。具有此修饰符的任何成员均可以通过它们的类的实例访问。
以下是一个使用public
访问修饰符的示例:
public class MyClass
{
public int myPublicVar;
public void myPublicFunction()
{
// Do something
}
}
在上面的示例中,myPublicVar
和myPublicFunction
可以从任何其他类中访问。
private访问修饰符
private
访问修饰符用于指定一个类、方法、属性或字段只能从其自身的类或结构中访问。其他类或结构中的任何尝试访问此修饰符下的成员都将引发编译错误。
以下是一个使用private
访问修饰符的示例:
public class MyClass
{
private int myPrivateVar;
private void myPrivateFunction()
{
// Do something
}
}
在上述示例中,myPrivateVar
和myPrivateFunction
只能在MyClass
类中访问。
protected访问修饰符
protected
访问修饰符用于指定一个类、方法、属性或字段可以从其自身的类或结构以及派生类中进行访问。其他类或结构中的尝试访问此修饰符下的成员都将引发编译错误。
以下是一个使用protected
访问修饰符的示例:
public class MyClass
{
protected int myProtectedVar;
protected void myProtectedFunction()
{
// Do something
}
}
在上述示例中,myProtectedVar
和myProtectedFunction
可以在MyClass
类和其派生类中访问。
internal访问修饰符
internal
访问修饰符用于指定一个类、方法、属性或字段只能在其自己的程序集中进行访问。程序集是一组相关的代码或DLL文件,如一个解决方案中的多个项目可以被组装为一个程序集。其他程序集中的类或结构中的任何尝试访问此修饰符下的成员都将引发编译错误。
以下是一个使用internal
访问修饰符的示例:
internal class MyClass
{
internal int myInternalVar;
internal void myInternalFunction()
{
// Do something
}
}
在上述示例中,MyClass
、myInternalVar
和myInternalFunction
只能在同一程序集中的类中访问。
protected internal访问修饰符
protected internal
访问修饰符用于指定一个类、方法、属性或字段可以从其自己的类或结构中、派生类以及同一程序集中的任何类中进行访问。
以下是一个使用protected internal
访问修饰符的示例:
public class MyClass
{
protected internal int myProtectedInternalVar;
protected internal void myProtectedInternalFunction()
{
// Do something
}
}
在上述示例中,myProtectedInternalVar
和myProtectedInternalFunction
可以在MyClass
类中、其派生类中以及同一程序集中的任何类中进行访问。
这里再举一个protected internal
的示例,假设有两个项目,一个名为MyProject1,另一个名为MyProject2,下面是在这两个项目中的使用示例:
在MyProject1中的一个类:
public class MyClass1
{
protected internal void myFunction()
{
// Do something
}
}
在MyProject2中的派生类:
public class MyClass2 : MyClass1
{
public void AnotherFunction()
{
myFunction(); // 可以访问到MyClass1中的myFunction方法
}
}
在MyProject2中的另一个类:
public class MyClass3
{
MyClass1 myObj = new MyClass1();
myObj.myFunction(); // 将无法访问到myFunction方法,因为MyClass3和MyClass1不在同一程序集中
}
以上就是对C#中5种访问修饰符的简要介绍,使用访问修饰符可以帮助我们更好的控制类、方法、属性或字段的可访问性,从而帮助我们编写更加健壮和安全的代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈C#基础之类的访问修饰符 - Python技术站