基础知识系列☞C#中→属性和字段的区别
"好吧...准备写个'基础知识系列',算是记录下吧,时时看看,更加加深记忆···"
其实本来准备叫"面试系列"...
字段、属性、你先知道的哪个概念?
***我个人来说先知道的是字段吧,,,刚开始一段时间一直觉得字段 是一个类型,是一个变量 ???(GG)那时候比较迷糊...
你觉得那个概念重要点呢?
***刚开始我觉得属性重要点,毕竟那时候概念还不太清楚;
→有字段了为什么还要属性呢?
***0001.限制只能给字段赋于某个范围的值;0010.要求字段只能读或只能写;0011.在改变字段时能改变对象的其他一些状态;很显然这些都是字段自己办不到的,当然还有很多好处...
0001.属性没有存储数据的功能,数据都存在字段中,所以只有修改字段的数据才能更改数据,修改属性的值没用。
0010.使用属性,避免将数据成员直接暴露给外界,维护私有字段(保证类的封装性);
0011.可以做线程同步;
0100.可以使用虚属性、或者抽象属性;
0101.可以将属性置于interface中;
0110.可以提供get-only或者set-only版本,甚至可以给读、写以不同的访问权限(C# 2.0支持)。
√-说多少也不如自己动手写写代码...
using System;
namespace TestCode
{
/// <summary>
/// 这是一个测试类
/// </summary>
class test
{
/// <summary>
/// 字段
/// </summary>
private string _filed;
/// <summary>
/// 传统方式来定义的属性
/// </summary>
public string Filed
{
get { return _filed; }
set { this._filed = value; }
}
/// <summary>
/// 语法糖
/// </summary>
public string Property
{
get;
set;
}
static void Main(string[] args)
{
Console.WriteLine("属性、字段测试code");
Console.ReadKey();
}
}
}
代码中的Property是.NET的一个语法糖,直接就是属性名;你或许疑惑没有字段,将值存到哪里了?
好吧,为什么叫语法糖呢,上图...

基础知识系列☞C#中→属性和字段的区别的更多相关文章
- C#中属性和字段的区别
属性和字段的区别 在C#中,我们可以非常自由的.毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值.或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态 ...
- 基础知识系列☞C#中数组Array、ArrayList和List三者的区别
数组() #region 数组 //初始化方式_0:先声明再赋值 ]; weekDays_0[] = "Sun"; weekDays_0[] = "Mon"; ...
- [WPF 基础知识系列] —— 绑定中的数据校验Vaildation
前言: 只要是有表单存在,那么就有可能有对数据的校验需求.如:判断是否为整数.判断电子邮件格式等等. WPF采用一种全新的方式 - Binding,来实现前台显示与后台数据进行交互,当然数据校验方式也 ...
- [C# 基础知识系列]C#中易混淆的知识点
一.引言 今天在论坛中看到一位朋友提出这样的一个问题,问题大致(问题的链接为:http://social.msdn.microsoft.com/Forums/zh-CN/52e6c11f-ad28-4 ...
- 基础知识系列☞C#中→委托
有些.NET中的高级特性,比如:委托! 有一种怎么也搞不懂的赶脚... 博客读了好几篇,代码也动手写了,书中的一些介绍也看了, 各种搜索关于委托的,至今还处于"会用"的阶段. 该怎 ...
- 基础知识系列☞各版本下IIS请求处理过程区别
转载地址→http://www.cnblogs.com/fsjohnhuang/articles/2332074.html ASP.NET是一个非常强大的构建Web应用的平台, 它提供了极大的灵活性和 ...
- Java中的属性与字段的区别
Java中属性和字段的区别 Java中的属性,通常可以理解为其属名性时根据get和set方法名得出的. 其规则是:去掉get或set后其剩余的字符串,如果第二个字母是小写的,则把第一个字母也变成小写 ...
- 基础知识系列☞Abstract和Virtual→及相关知识
转载地址→http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的 ...
- C# 基础知识系列- 10 反射和泛型(二)
0. 前言 这篇文章延续<C# 基础知识系列- 5 反射和泛型>,继续介绍C#在反射所开发的功能和做的努力.上一篇文章大概介绍了一下泛型和反射的一些基本内容,主要是通过获取对象的类型,然后 ...
随机推荐
- Automated CMS category, version identification (CMS vulnerability detection)
catalog . 引言 . 不同CMS版本标的文件路径调研 . Code Example 1. 引言 微软解决大量CVE补丁更新的检测时候,采取的思路不是根据MD5对单个漏洞文件(.dll..sys ...
- 谈谈JavaScript MVC模式
第一个是:没有使用mvc模式的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- UpdateSourceTrigger Property in WPF Binding
介绍 这篇文章我将介绍在WPF和Silverlight中更新绑定源的概念.正如您所知道的,当我们用TwoWay的模式绑定时,任何在目标控件上发生的变化都会影响绑定源的值. 请注意只是在用TwoWay绑 ...
- oneM2M
http://www.ccsa.org.cn/organization/intro.php?org=oneM2M 一.成立背景 随着物联网技术研发及市场推广的不断深入,全球各通信标准化组织都在加强物联 ...
- 网摘 窗体的旋转效果 wpf
<Window x:Class="simplewpf.chuantixx" Name="DW1" xmlns="http://s ...
- 会话控制:session与cookie
我们在浏览网站时,访问的每一个web页面都需要使用"http协议"实现.而HTTP协议是无状态协议,就是说HTTP协议没有一个内建机制来维护两个事务之间的状态.当一个用户请求一个页 ...
- Lock的用法,为什么要用?
当多个进程分享数据的时候,对某段程序代码要lock(当对分享数据进行改写的时候). 我们先看些这段代码: namespace ThreadTest { class Program { static b ...
- 脚本放在 <body> 元素的底部
建议把脚本放在 <body> 元素的底部. 这会提高网页加载速度,因为 HTML 加载不受制于脚本加载.
- 20145212 《Java程序设计》第10周学习总结
20145212 <Java程序设计>第10周学习总结 学习内容总结 一.Java的网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net ...
- 关闭和启动adb服务命令
在运行中输入 关闭——adb kill-server 重启——adb start-server