C#:常规属性和自动实现的属性
根据属性的实现方式,属性可分为自动实现的属性和常规属性。
常规属性需要具体的人为的实现get访问器或者set访问器,而且一般需要有一个字段与之相对应;而自动实现的属性的get和set访问器的实现部分被省略掉了,而且代码中不需要有相对应的字段。
常规属性:
public class Person
{
//-----------------------
//普通属性
//-----------------------
private string name;
/// <summary>姓名</summary>
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
}
自动实现的属性:
public class Person
{
//-----------------------
//自动实现的属性
//-----------------------
/// <summary>姓名</summary>
public string Name
{
get;
set;
}
}
可以给自动实现的属性的get访问器或者set访问器添加访问权限修饰符(private,protected,internal),以控制该属性的访问权限。
(*注意给get或者set访问器添加的访问权限修饰符的访问权限,必须比该属性整体的访问属性的访问权限要小)
通过给get或者set访问器添加的访问权限修饰符,实现只读或者只写:
public class Person
{
//-----------------------
//自动实现的属性实现只读
//-----------------------
/// <summary>姓名</summary>
public string Name
{
get;
private set;
}
}
public class Person
{
//-----------------------
//自动实现的属性实现只写
//-----------------------
/// <summary>姓名</summary>
public string Name
{
private get;
set;
}
}
自动实现的属性有以下几点需要注意:
①必须同时实现set访问器和get访问器,缺一不可;
②自动实现的属性,编译器在运行时会自动生成一个私有的字段,这个自动生成的字段不能够直接访问;
③当需要实现对数据的合法性验证或者其它特殊处理的时候不能用自动实现的属性。
C#:常规属性和自动实现的属性的更多相关文章
- Spring入门(5)-自动装配Bean属性
Spring入门(5)-自动装配Bean属性 本文介绍如何装配Bean属性. 0. 目录 ByName ByType constructor 默认自动装配 混合使用自动装配和显示装配 1. ByNam ...
- Spring - bean的autowire属性(自动装配)
当我们要往一个bean的某个属性里注入另外一个bean,我们会使用<property> + <ref/>标签的形式.但是对于大型项目,假设有一个bean A被多个bean引用注 ...
- C#杂记-自动实现的属性(自动属性)
基础知识: 普通属性:可读或可写并将值存储到一个私有变量中的属性,不对数据做任何加工,没有自定义代码. private string name public string Name { get{ret ...
- C#属性、自动属性、字段之间的区别和理解
.ctor是构造方法的意思,注意委托其实也是有构造方法的(不过是编译器自动创建的是私有的)貌似它的参数一个是委托引用的方法所属的对象(或Type对象),一个是该方法的指针: 1.属性的概念其实和字段是 ...
- SpringBoot注解把配置文件自动映射到属性和实体类实战
SpringBoot注解把配置文件自动映射到属性和实体类实战 简介:讲解使用@value注解配置文件自动映射到属性和实体类 1.配置文件加载 方式一 1.Controller上面配置 @Propert ...
- mybatis JdbcTypeInterceptor - 运行时自动添加 jdbcType 属性
上代码: package tk.mybatis.plugin; import org.apache.ibatis.executor.ErrorContext; import org.apache.ib ...
- springboot属性类自动加载配置文件中的值
springboot属性类自动加载配置文件中的值,如Person类加载在yml中配置的name,age等属性值,可以通过如下步骤获取: 类上添加@ConfigurationProperties注解,p ...
- Spring Bean 注入 1 - 构造方法注入,属性注入,自动装配
1.代码结构图 xxx 2.bean代码 package com.xxx.bean; /** * Created with IntelliJ IDEA. * User: zhenwei.liu * D ...
- 用Emmet写CSS3属性会自动添加前缀
CSS3的很多属性都包含浏览器厂商前缀,用Emmet写CSS3属性会自动添加前缀,比如输入trs 会展开为: -webkit-transition: prop time; -moz-transitio ...
随机推荐
- ss 公共代理的必要设置(转)
转: https://gist.github.com/fqrouter/95c037f9a3ba196fd4dd 本文只关注于确保ss服务还“活着”,如果你希望让其跑得更快,请参考 https://g ...
- 图书管理之HTML5压缩旋转裁剪图片总结
整体思路 : 在移动端压缩图片并且上传主要用到filereader.canvas 以及 formdata 这三个h5的api.逻辑并不难.整个过程就是: (1)用户使用input file上传图片的 ...
- 分享:shell去掉linux配置文件的注释行
如何通过shell去掉Linux配置文件中的注释行呢? 本文给出两种解决方法,供大家参考. 方法1.使用grep -v "^#" 来去掉注释行,其中:-v 表示取反 ^# 表示注解 ...
- Server.MapPath()获取本机绝对路径
1. Server.MapPath("/") 应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\ 2.Server.MapPath("./&qu ...
- 记录整合sprinmvc+log4j的的过程
简介 由于进一步的学习以及便于自己更好的调试程序中遇到的错误,开始了将log4j整合到web项目中,项目是基于springmvc的,所以就做了一个springmvc和web项目的整合demo,本篇博客 ...
- Eclipse如何设置字体
Eclipse 是一个开放源代码的.基于Java的可扩展开发平台,是学习java和开发java最常用的IDE之一.有时候会遇到这种情况,刚刚下载了新的Eclipse,字体显示英文没问题,但是显示中文就 ...
- 修改ECSHOP系统红包序列号规律
ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字.如果当我们要发放大额度红包的时候,这样的序列号规则难免给人不安全的感觉,万一真的有哪个无聊的人,用一天时间来蒙 ...
- Asp.net mvc5 系列笔记
程序版本 vs 2015 1.0.0-beta4 ,得到你的肯定是我最大的动力. Asp.net Vnext 调试源码 Asp.net Vnext 自定义日志 Asp.net Vnext 中间件实 ...
- 详解KMP算法
转载注明出处:http://www.cnblogs.com/yjiyjige/p/3263858.html 什么是KMP算法: KMP是三位大牛:D.E.Knuth.J.H.Morris和V.R.Pr ...
- Mybatis用法小结
select 1.基本用法 <select id="selectTableOne" resultType="com.test.entity.tableOne&quo ...