C# 类成员的访问:内部与外部

在 C# 编程中,了解如何从类的内部和外部访问成员是非常重要的。本文将详细介绍这两种访问方式,并通过示例代码展示其具体应用。

从类的内部访问成员

类的成员可以在类的内部自由地互相访问,即使这些成员被声明为private。在类的方法中,可以直接使用其他成员的名称来访问它们。

以下是一个示例代码:

csharp 复制代码
class DaysTemp 
{ 
    // 字段 
    private int High = 75; 
    private int Low = 45; 
 
    // 方法 
    private int GetHigh() 
    { 
        return High; // 访问私有字段 
    } 
 
    private int GetLow() 
    { 
        return Low; // 访问私有字段 
    } 
 
    public float Average() 
    { 
        // 访问私有方法 
        return (GetHigh() + GetLow()) / 2; // 访问私有字段 
    } 
} 

在这个示例中,GetHigh和GetLow方法分别访问了私有字段High和Low,而Average方法则调用了这两个私有方法来计算平均值。

从类的外部访问成员

要从类的外部访问实例成员,必须使用点运算符(.),将变量名称和成员名称分隔开来。这种访问方式要求成员必须是public的。

以下是一个示例代码:

csharp 复制代码
class DaysTemp 
{ 
    // 字段 
    public int High; 
    public int Low; 
} 
 
class Program 
{ 
    static void Main() 
    { 
        DaysTemp temp = new DaysTemp(); // 创建对象,变量名称 temp 
        temp.High = 85; // 给字段赋值 
        temp.Low = 50; 
 
        Console.WriteLine("High:{0}", temp.High); 
        Console.WriteLine($"Low:{temp.Low}"); 
    } 
} 

在这个示例中,Main方法创建了一个DaysTemp类的对象temp,并通过点运算符访问了对象的High和Low字段。

综合应用

下面的代码展示了如何声明一个类、创建类的实例以及访问类的成员:

csharp 复制代码
class DaysTemp 
{ 
    public int High, Low; // 声明实例字段 
    public int Average() // 声明实例方法 
    { 
        return (High + Low) / 2; 
    } 
} 
 
class Program 
{ 
    static void Main() 
    { 
        // 创建两个 DaysTemp 实例 
        DaysTemp t1 = new DaysTemp(); 
        DaysTemp t2 = new DaysTemp(); 
 
        // 给字段赋值 
        t1.High = 76; 
        t1.Low = 57; 
        t2.High = 75; 
        t2.Low = 53; 
 
        // 读取字段值,调用实例的方法 
        Console.WriteLine("t1:{0},{1},{2}", t1.High, t1.Low, t1.Average()); 
        Console.WriteLine("t2:{0},{1},{2}", t2.High, t2.Low, t2.Average()); 
    } 
} 

在这个示例中,Main方法创建了两个DaysTemp类的实例t1和t2,并分别给它们的字段赋值。然后,通过点运算符访问了字段的值,并调用了Average方法来计算平均值。

新旧字符串语法

在本文的示例代码中,我们使用了新旧两种字符串语法。新的字符串语法(如$"Low:{temp.Low}")更易读,但现有代码和线上资源中大部分仍然使用旧的语法(如"High:{0}", temp.High)。因此,理解和使用这两种语法都是很重要的。

通过本文的介绍,你应该对 C# 中类成员的内部和外部访问方式有了更深入的了解。在实际编程中,根据需要合理地使用这些访问方式,可以提高代码的安全性和可维护性。

相关推荐
没有bug.的程序员2 分钟前
《Java对象头与MarkWord结构:锁优化的底层内幕》
java·开发语言·锁优化·java对象头·markword
wangmengxxw11 分钟前
SpringMVC-拦截器
java·开发语言·前端
The_era_achievs_hero29 分钟前
UniappDay06
开发语言·javascript·uni-app
wjs202431 分钟前
HTML 颜色值
开发语言
大阳1231 小时前
数据结构(概念及链表)
c语言·开发语言·数据结构·经验分享·笔记·算法·链表
云动雨颤1 小时前
WordPress安全加速:Cloudflare + Nginx缓存优化方案
服务器·wordpress
晨非辰1 小时前
#C语言——刷题攻略:牛客编程入门训练(四):运算
c语言·开发语言·学习·学习方法·visual studio
m0_558790141 小时前
GPU算力平台评测
服务器·人工智能·python·深度学习·神经网络·目标检测·机器学习
2501_924731991 小时前
驾驶场景玩手机识别:陌讯行为特征融合算法误检率↓76% 实战解析
开发语言·人工智能·算法·目标检测·智能手机
Kyln.Wu2 小时前
【python实用小脚本-169】『Python』所见即所得 Markdown 编辑器:写完即出网页预览——告别“写完→保存→刷新”三连
开发语言·python·编辑器