当前位置: 首页 > ai >正文

C#类访问修饰符

1. public 修饰符

public 类能被任何代码访问,不受访问限制。

// 定义一个 public 类
public class PublicClass
{public void ShowMessage(){Console.WriteLine("这是一个 public 类的方法。");}
}class Program
{static void Main(){PublicClass publicObj = new PublicClass();publicObj.ShowMessage();}
}

在这个例子里,PublicClass 被 public 修饰,Main 方法能够创建它的实例并调用其方法。

 

2. private 修饰符

private 类仅在包含它的类型内可访问,一般用于嵌套类。

class OuterClass
{// 定义一个 private 嵌套类private class PrivateNestedClass{public void Display(){Console.WriteLine("这是一个 private 嵌套类的方法。");}}public void UsePrivateClass(){PrivateNestedClass privateObj = new PrivateNestedClass();privateObj.Display();}
}class Program
{static void Main(){OuterClass outer = new OuterClass();outer.UsePrivateClass();}
}

这里的 PrivateNestedClass 是 OuterClass 的私有嵌套类,只有 OuterClass 内部的代码可以访问它。

 

3. internal 修饰符

internal 类只能在同一程序集内被访问。

// 定义一个 internal 类
internal class InternalClass
{public void PrintInfo(){Console.WriteLine("这是一个 internal 类的方法。");}
}class Program
{static void Main(){InternalClass internalObj = new InternalClass();internalObj.PrintInfo();}
}

InternalClass 被 internal 修饰,在同一程序集内的 Main 方法能够创建其实例并调用方法。

 

4. protected 修饰符

protected 修饰符一般用于类的成员,而不是直接修饰类,但可以用于嵌套类,使嵌套类能在其外部类和派生类中被访问。

class BaseClass
{// 定义一个 protected 嵌套类protected class ProtectedNestedClass{public void Print(){Console.WriteLine("这是一个 protected 嵌套类的方法。");}}public void UseProtectedClass(){ProtectedNestedClass protectedObj = new ProtectedNestedClass();protectedObj.Print();}
}class DerivedClass : BaseClass
{public void AccessProtectedClass(){ProtectedNestedClass protectedObj = new ProtectedNestedClass();protectedObj.Print();}
}class Program
{static void Main(){DerivedClass derived = new DerivedClass();derived.AccessProtectedClass();}
}

在这个例子中,ProtectedNestedClass 是 BaseClass 的受保护嵌套类,BaseClass 及其派生类 DerivedClass 都可以访问它。

 

5. abstract 修饰符

abstract 类不能被实例化,只能作为基类,且可以包含抽象成员。

// 定义一个抽象类
abstract class Shape
{// 定义抽象方法public abstract double Area();public void PrintArea(){Console.WriteLine("面积是: " + Area());}
}// 继承抽象类并实现抽象方法
class Circle : Shape
{private double radius;public Circle(double r){radius = r;}public override double Area(){return Math.PI * radius * radius;}
}class Program
{static void Main(){Circle circle = new Circle(5);circle.PrintArea();}
}

Shape 是抽象类,Area 是抽象方法,Circle 类继承自 Shape 并实现了 Area 方法。

 

6. sealed 修饰符

sealed 类不能被继承。

// 定义一个 sealed 类
sealed class SealedClass
{public void Show(){Console.WriteLine("这是一个 sealed 类的方法。");}
}// 以下代码会报错,因为不能继承 sealed 类
// class DerivedFromSealed : SealedClass { }class Program
{static void Main(){SealedClass sealedObj = new SealedClass();sealedObj.Show();}
}

SealedClass 被 sealed 修饰,不能有派生类。

 

7. partial 修饰符

partial 类允许将类的定义分散在多个文件中。
文件 1:PartialClassPart1.cs

// 定义 partial 类的一部分
partial class PartialClass
{public void Method1(){Console.WriteLine("这是 partial 类的方法 1。");}
}

 

文件 2:PartialClassPart2.cs

// 定义 partial 类的另一部分
partial class PartialClass
{public void Method2(){Console.WriteLine("这是 partial 类的方法 2。");}
}class Program
{static void Main(){PartialClass partialObj = new PartialClass();partialObj.Method1();partialObj.Method2();}
}

PartialClass 的定义分布在两个文件中,编译时会合并成一个完整的类。

 

http://www.xdnf.cn/news/3280.html

相关文章:

  • 经济学和奥地利学派的起源
  • WEB UI自动化测试之Selenium框架学习
  • 面试中系统化地解答系统设计题:通用方法论
  • Unity图片导入设置
  • C++11新特性_范围-based for 循环
  • 五一北方穿外套:南方要防暑
  • 33、VS中提示“以下文件中的行尾不一致。是否将行尾标准化?“是什么意思?
  • SpringBoot使用分组校验解决同一个实体对象在不同场景下需要不同校验规则的问题
  • [更新完毕]2025东三省A题深圳杯A题数学建模挑战赛数模思路代码文章教学:热弹性物理参数估计
  • 5月1日日记
  • terraform生成随机密码
  • 类和对象(拷贝构造和运算符重载)下
  • 【2025域适应科研日报】
  • 0基础 | Proteus电路仿真 | 电机使用
  • Spring MVC @PathVariable 注解怎么用?
  • 网络编程——TCP和UDP详细讲解
  • 【Java学习笔记】递归
  • CSS响应式与自适应设计
  • 【Linux网络】I/O多路转接技术 - epoll
  • 1.67g 雨晨 22635.5305 Windows 11 企业版 23H2 极速增强版
  • 【中间件】bthread_数据结构_学习笔记
  • 线段树原理和代码详解
  • JavaScript基础-递增和递减运算符
  • 二、HTML
  • PostgreSQL数据表操作SQL
  • C标准库(libc)接口及示例解析
  • 从股指到期指,哪些因素影响基差?
  • 51c嵌入式~单片机~合集9
  • [操作系统] 线程互斥
  • 【Linux知识】Shell脚本中各类参数传递以及获取