这个例子好像不用get,set也是可以访问变量的,有区别吗
时间: 2024-04-04 16:31:47 浏览: 20
是的,你说得没错。在C#中,如果一个类的成员变量是public访问级别,外部代码也可以直接访问它们,就像你这个例子中访问Name属性一样。但是,这种方式存在一些问题。
首先,如果将成员变量设置为public访问级别,外部代码可以直接修改它们的值,这就失去了对变量的控制能力。其次,如果以后需要对变量的访问方式进行修改,例如需要增加一些逻辑判断,就需要修改外部代码,这样会增加代码的复杂性和耦合性。
因此,使用get和set访问器可以更好地控制变量的访问方式,同时也可以在不影响外部代码的情况下修改访问方式。
相关问题
C# 带get set的变量有什么区别
C# 中带有 get 和 set 方法的变量被称为属性(Property)。属性提供了一种简单和安全的方式,用于访问和修改对象的私有字段或计算的值。
区别如下:
1. 访问控制:属性可以帮助控制对变量的访问权限,因为可以在 get 和 set 方法中添加访问控制修饰符。例如,可以将 get 方法设置为 public 而将 set 方法设置为 private,这样只能获取属性值,而不能设置属性值。
2. 计算值:属性可以计算值并返回,因此可以在 get 方法中编写代码来计算属性的值,而不是简单地返回变量的值。
3. 数据校验:属性可以帮助校验数据的有效性,例如,在 set 方法中添加一些条件语句,以确保输入的值符合预期的条件。
4. 语法简洁:使用属性可以使代码更加简洁易懂,例如,可以使用类似于 myObject.MyProperty 的语法来访问属性,而不是使用 myObject.GetMyProperty() 和 myObject.SetMyProperty() 的方法。
C# 的get,set 有什么用处吗?外部代码怎么访问呢
C#中的get和set是属性访问器,它们的作用是为类的成员变量提供安全的访问方式。get用于获取属性的值,set用于设置属性的值。通过使用属性访问器,可以控制属性的读取和写入操作,可以对属性值进行一些逻辑判断和处理,从而保证程序的正确性和安全性。
外部代码可以通过对象实例来访问属性,例如:
```
Person p = new Person();
p.Name = "Tom"; // 设置Name属性的值
string name = p.Name; // 获取Name属性的值
```
在这个例子中,Name是一个属性,它有get和set访问器。通过对象实例p来访问Name属性,可以设置或获取它的值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)