C# 获取设置与不获取设置

标签 c# get set

<分区>

我已经查看了至少 10 个有关 get/set 的 SO 问题,但找不到我的问题。所以我希望这不是重复的。

public class myint
{
    public int value{get;set;}
}

对比

public class myint
{
    public int value;
}

上面的两个代码对我来说看起来是一样的。如果我想使用 myint 类,我只需编写下面的代码,它就可以在任一类上运行。

myint A;
A.value=10;

那么 get/set 有什么用呢?

最佳答案

你问的是使用公共(public)实例变量与我假设的 getter/setter 属性之间的区别。

属性允许您进一步封装有关获取或设置变量的逻辑,例如添加简单的验证逻辑。例如,如果有人将您的值设置为小于零,您可能会抛出异常。您还可以在 getter/setter 中添加更多逻辑,例如同步特定字段。

其他一些区别:

  • 属性可用于在大多数 .NET UI 框架中轻松进行数据绑定(bind)。
  • 反射的工作方式不同。
  • 获取/设置的不同访问级别与例如您的实例变量,您可以在只读、私有(private)、 protected 、静态等之间进行整体选择。
  • 访问属性的开销更大。在游戏和对性能高度敏感的情况以外的大多数用例中,这通常并不重要。

关于C# 获取设置与不获取设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22497088/

相关文章:

.htaccess - 没有 index.php 的查询字符串

java - 将集合转换为列表而不创建新列表

c# - .NET v 5.0 缺少 Amazon S3 SelectObjectContent 支持?

c# - 为 Dapper 重置缓存

c# - elasticsearch.net 和 Nest (C#) 中的日期格式问题

c# - 使用c#从文件夹动态处理位图文件

oop - Matlab 面向对象编程 : Setting and getting properties for multiple objects

ios - 将 session ID 传递给 GET Objective-C

c++ - bst 比较模板上的错误 C2664

java - 将 Set.toArray() 转换为 Object[] 时出错