C#封装为.带来了、如何从外部get并set
时间: 2024-03-03 19:50:43 浏览: 109
在C#中,封装(encapsulation)是一种面向对象编程中的核心概念,它可以将类的实现细节隐藏起来,仅暴露必要的接口给外部使用。封装可以提高代码的安全性、可维护性和可复用性。
封装可以通过访问修饰符(access modifier)来实现。在C#中,有4种访问修饰符:public、private、protected和internal。其中,public表示公共的,可以在任何地方访问;private表示私有的,只能在类内部访问;protected表示受保护的,只能在类内部和子类中访问;internal表示内部的,只能在同一个程序集中访问。
通过封装,我们可以将类的成员变量设为private,然后提供公共的属性(property)来让外部访问和修改这些变量。例如:
```csharp
public class MyClass
{
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
}
```
在这个示例中,`myVar`被设为private,外部不能直接访问它。但是,通过公共的属性`MyProperty`,外部可以访问和修改`myVar`的值。例如:
```csharp
MyClass obj = new MyClass();
obj.MyProperty = 10; // 设置myVar的值为10
int x = obj.MyProperty; // 获取myVar的值,x的值为10
```
需要注意的是,C#中的属性实际上是一种特殊的方法,包含了get和set访问器。在属性中,我们可以添加一些逻辑,如验证输入值的有效性等。同时,C#也提供了自动实现属性(auto-implemented property)的语法,可以更简洁地定义属性。例如:
```csharp
public class MyClass
{
public int MyProperty { get; set; }
}
```
这个示例中,`MyProperty`是一个自动实现属性,它自动创建了一个私有的成员变量,然后提供了get和set访问器。外部可以像访问普通的成员变量一样访问和修改`MyProperty`的值。
阅读全文