博客
关于我
[Unity&对象]怎么理解变量public 还是private ,还是使用getset方法定义
阅读量:471 次
发布时间:2019-03-06

本文共 1966 字,大约阅读时间需要 6 分钟。

get/scalar Control in C#: Understanding Accessibilities and encapsulation

孟德国 ITags 分析器部门,团队5

在 C#开发中,属性的定义方式有多种方式,最常见的包括using public和private定义方式,以及通过get/set方法进行操作。此外,还可以对某些变量进行条件判断,这种方法在提高代码的可维护性和安全性方面具有重要意义。

什么是public和private变量?get/set方法有什么作用?

public变量可以被其他类或程序调用,而private变量只能在当前类内部使用。如果直接定义一个public变量,可能会导致泄漏,尤其是在多人协作开发项目时。为避免这种情况,通常建议使用get/set方法,这样就可以在同一个类中对变量进行操作,而不会暴露具体的变量实现细节。

为什么要使用get/set方法?

get sett方法主要在以下方面发挥作用:

  • 实现变量的安全性:通过对变量的访问进行审查,避免未经授权的访问。

  • 提升代码的可维护性:让其他程序员清楚变量的使用条件和适用场景,便于理解代码意图。

  • 增强代码的安全性:通过设置条件判断,避免变量超出合理范围,比如设置分数的上限或下限。

  • 提高尽职omorphic性:让不同职能部门的团队成员清楚,可以直接修改哪些变量,避免因不清楚变量作用而导致的问题。

  • get/set方法的一些使用场景

    除了上述作用,get sett方法可以用于多种场景:

  • 简单的属性设置:如ID字段的设置,代码简洁明了,便于快速重构继承多接口的项目。

    public int ID { get; set; }
  • 变量的封装性处理:对private字段进行简单的读写操作,确保仅在这个类中获取或设置该字段。

    private int id;public int ID { get { return id; } set { id = value; } }
  • 变量的条件审查:在设置某些变量时,添加条件判断,确保变量不会超出合理范围。

    private int score;public int Score {     get { return score; }    set     {        if (value > 0 && value < 100)        {            score = value;        }    }}
  • 对变量的访问权限进行限制:如果只想允许某些特定的类或组件修改某个字段,可以通过定义为public属性,然后在对应的get/set方法中进行权限控制。

    private string sendData;public string SendData {     get { return sendData; }    set     {        if (value.Length <= 1000)        {            sendData = value;        }    }}
  • 相关资料

  • Unity3D最佳实践:IQmoderate

    http://www.xlgps.com/article/430834.html
    该文章详细探讨了如何在Unity3D中应用get sett方法,以提高代码的可维护性和安全性。

  • C#中get sett属性的作用

    https://zhidao.baidu.com/question/182739116
    该问答解释了get sett方法与属性定义的区别,帮助开发者理解两者之间的联系与差异。

  • Java中类的封装性

    https://zhidao.baidu.com/question/1540144388047863747
    该问题分析了类的封装性及其与get sett方法的结合使用。

  • C#属性定义的规范性

    https://zhidao.baidu.com/question/116540361
    该问题探讨了C#属性定义的多种方式及其规范性问题,提供了实用的建议。

  • C#中get settle的优化写法

    https://zhidao.baidu.com/question/1178693760100976539
    该问题分析了C#中属性定义的不同写法,并提出了优化建议。

  • 6."How to use primitives in C#"

    http://blog.csdn.net/bulademian/article/details/72884513
    该文章指导开发者如何在C#中合理使用基本类型,并结合get sett方法进行数据管理。

    1. "C#属性与封装性"
      该问题涉及C#中属性封装性的实现,提供了实用的开发建议。
    你可能感兴趣的文章
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>
    MySQL Cluster与MGR集群实战
    查看>>
    multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
    查看>>
    mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
    查看>>
    Multiple websites on single instance of IIS
    查看>>
    mysql CONCAT()函数拼接有NULL
    查看>>
    multiprocessing.Manager 嵌套共享对象不适用于队列
    查看>>
    multiprocessing.pool.map 和带有两个参数的函数
    查看>>
    MYSQL CONCAT函数
    查看>>
    multiprocessing.Pool:map_async 和 imap 有什么区别?
    查看>>
    MySQL Connector/Net 句柄泄露
    查看>>
    multiprocessor(中)
    查看>>
    mysql CPU使用率过高的一次处理经历
    查看>>
    Multisim中555定时器使用技巧
    查看>>
    MySQL CRUD 数据表基础操作实战
    查看>>
    multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
    查看>>
    mysql csv import meets charset
    查看>>
    multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
    查看>>
    MySQL DBA 数据库优化策略
    查看>>