C#基础知识回顾-- 属性与字段

  今天在公交车上,突然想属性和字段到底有什么区别?很多字段属性都存在 get{}和set{} 和普通的变量没什么区别(可读可写)

我就感觉属性就是给字段一个多的选择方式,有的字段是不允许更改的..   刚写程序时总觉得一个字段就能满足要求,何必要使用定义起来麻烦的属性

要get、set的去定义,代码量还大,真不知道他们的区别和优点 例:

public class myclass 
{

public static string A

private sting _B=""; 
public string Getval 
{ 
get { retrun _B ;} 
set { _B = value; } 
}
}

myclass.A 和 myclass.Getval可能实现同样功能,为什么一定要用定义属性?

现在简单总结下属性较普通变量的优点: 1、数据安全   因为A是个公有变量,在类的外部可以任意更改,为了防止因用户任意更改,可用属性get、set来限制_B的的只读、只写或控制_B的最大或最小

引用一位老兄的简答:"其实自定义变量已经默认实现了属性,只是简单的读写而已,我们定义的属性要在读写的基础上加上更多限制,以后你学的多

了就会发现, 很多东西都是为了数据安全而加入的,说白了就是限制,例如接口,接口中的方法你必须(注意是必须,强制性的)要实现"

2、OOP和编程的一个原则就是数据封装,意味着我们不应该将字段的类型以公开的方式提供给外界 (其实属性就是对字段的封装)

3、其实单纯写程序一点不难,难得是如何设计程序,使代码简洁易读而效率又最高,

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Python爬虫库-BeautifulSoup的使用

Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标...

690
来自专栏HTML5学堂

HTML5-类库系列 类名的各种操作

HTML5学堂:最近讲师团队在学习JS类库的知识,因此就跟大家一起共享一下类库的搭建吧。今天要讲解的功能是:类名的各种操作。在这里,HTML5学堂提醒各位,不要...

3305
来自专栏河湾欢儿的专栏

vue初

指令总结 v-bind 可以绑定属性,包括class style,而已省略,使用:替代 在1vue.0中有三种修饰符,.sync,.once,.camel...

632
来自专栏liulun

学习WPF——初识依赖项属性

入门 首先创建一个依赖项属性 ? 然后绑定父容器的DataContext到这个依赖项的实例 ? 接着绑定子元素的属性到依赖项属性(注意Button的Conten...

1707
来自专栏PHP技术

jQuery学习笔记

jQuery大部分功能需要根据文档的DOM模型来工作,首先需要正确地解析到整个文档的DOM模型结构。使用jQuery需要在整个文档被浏览器完全加载后才开始进行。

772
来自专栏哈雷彗星撞地球

Runtime系列(一)-- 基础知识

众所周知,Objective-C 是一种运行时语言。运行时怎么来体现的呢?比如一个对象的类型确定,或者对象的方法实现的绑定都是推迟到软件的运行时才能确定的。而运...

712
来自专栏cnblogs

Javascript的内存泄漏分析

     作为程序员(更高大尚的称谓:研软件研发)的我们,无论是用Javascript,还是.net, java语言,肯定都遇到过内存泄漏的问题。只不过他们都有...

822
来自专栏Pythonista

前端学习之jQuery

[1]   jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。

621
来自专栏编程

关于正则表达式的5个小贴士

正则表达式是一个非常强大的处理字符工具,但有时可读性很差、晦涩难懂,Jamie Zawinski 说道: Some people, when confronte...

1738
来自专栏大内老A

ASP.NET Core的路由[5]:内联路由约束的检验

当某个请求能够被成功路由的前提是它满足某个Route对象设置的路由规则,具体来说,当前请求的URL不仅需要满足路由模板体现的路径模式,请求还需要满足Route对...

3015

扫码关注云+社区