在 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# 中类成员的内部和外部访问方式有了更深入的了解。在实际编程中,根据需要合理地使用这些访问方式,可以提高代码的安全性和可维护性。