C#关于类的只读只写属性实例分析
C#中属性的目的是对字段的封装,是为了程序数据的安全性考虑的。本文即以实例形式对C#中只读只写属性进行剖析。
对于只读或只写的属性定义:
1、不写入其中一个get\set方法即可只读或只写
比如:
private int a; public int A{ get { return a; } }
2、用private进行保护,类外同样意味着只读或只写
比如:
private int a; public int A{ private get { return a; } set { a = value; } }
这里需要注意的是,这样定义的属性是在 C# 3.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁。
编译器将创建一个私有的匿名支持字段,该字段只能通过属性的 get 和 set 访问器进行访问,
public int A{get;set;}
切记!这样是无法省略其中一项(get/set)进行只读或者只写的.
但是用private保护就可以:
public int A{get;private set;}
相关推荐
-
C#实现ProperTyGrid自定义属性的方法
本文实例讲解了C#实现ProperTyGrid自定义属性的方法,分享给大家供大家参考.具体方法如下: 一般来说,C#如果要实现自定义属性必须要需要实现接口ICustomTypeDescriptor,具体实现方法如下: // 摘要: // 提供为对象提供动态自定义类型信息的接口. public interface ICustomTypeDescriptor 示例如下: /// <summary> /// 自定义属性对象 /// </summary> public class MyAt
-
C#使用shell32获取文件属性的方法
本文实例讲述了C#使用shell32获取文件属性的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Shell32; namespace GetFileCreator { class Program { static void Main(string[] args) { //要获取属性的文件路径 string fil
-
C#中属性和成员变量的区别说明
一个类,有时候搞不清楚到底用成员变量还是属性. 如: 成员变量 public string Name; 或者用属性 private string name public string Name{ get { return name; } set { name = value; } } 属性与成员变量类似
-
C#中使用反射遍历一个对象属性及值的小技巧
总结: 对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): 复制代码 代码如下: Type t = tc.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach (PropertyInfo pi in t.GetProperties()) { object value1 = pi.GetValue(tc, null));//用pi.GetVal
-
举例讲解C#中自动实现的属性
在 C# 3.0 及更高版本,当属性访问器中不需要任何其他逻辑时,自动实现的属性会使属性声明更加简洁.它们还允许客户端代码创建对象.当你声明以下示例中所示的属性时,编译器将创建仅可以通过该属性的 get 和 set 访问器访问的专用.匿名支持字段. 下列示例演示一个简单的类,它具有某些自动实现的属性: // This class is mutable. Its data can be modified from // outside the class. class Customer { //
-
C#类中属性与成员变量的使用小结
属性实际上和成员变量没什么区别,属性代表类的某种特征, 让人更好理解而已. 使用中注意问题:1.属性名和变量名不能相同, 2.一般变量都是private,属性都是public的,属性用于给类外调用,变量限于类内使用,感觉封装性体现得要好些 3.属性必须和一个变量相联系,而这个变量必须要在类中定义.如果不定义,用成如下方法: 复制代码 代码如下: public int b //定义一个属性b { get { return b; } set { b = val
-
C#类中的属性使用总结(详解类的属性)
复制代码 代码如下: private int dd; public int dd { get{ return xx*3;} set{ xx = value/3;} } 没有set的属性是一种只读属性,没有get的访问器是一种只写属性.(1) get访问器用来返回字段或者计算 并返回字段,它必须以return或者throw终结. 复制代码 代码如下: private string name; public string Name { get {
-
C#多线程之Thread中Thread.IsAlive属性用法分析
本文实例讲述了C#多线程之Thread中Thread.IsAlive属性用法.分享给大家供大家参考.具体如下: Thread.IsAlive属性 ,表示该线程当前是否为可用状态 如果线程已经启动,并且当前没有任何异常的话,则是true,否则为false Start()后,线程不一定能马上启动起来,也许CPU正在忙其他的事情,但迟早是会启动起来的! Thread oThread = new Thread(new ThreadStart(Back.Start)); oThread.Start();
-
C#使用Directoryinfo类获得目录信息和属性的方法
本文实例讲述了C#使用Directoryinfo类获得目录信息和属性的方法.分享给大家供大家参考.具体如下: using System; using System.IO; class MainClass { static void Main(string[] args) { FileInfo file = new FileInfo("c:\\a.txt"); // Display directory information. DirectoryInfo dir = file.Direc
-
C#利用反射来判断对象是否包含某个属性的实现方法
本文实例展示了C#利用反射来判断对象是否包含某个属性的实现方法,对于C#程序设计人员来说有一定的学习借鉴价值. 具体实现代码如下: /// <summary> /// 利用反射来判断对象是否包含某个属性 /// </summary> /// <param name="instance">object</param> /// <param name="propertyName">需要判断的属性</par
-
C#属性(Attribute)用法实例解析
属性(Attribute)是C#程序设计中非常重要的一个技术,应用范围广泛,用法灵活多变.本文就以实例形式分析了C#中属性的应用.具体入戏: 一.运用范围 程序集,模块,类型(类,结构,枚举,接口,委托),字段,方法(含构造),方法,参数,方法返回值,属性(property),Attribute [AttributeUsage(AttributeTargets.All)] public class TestAttribute : Attribute { } [TestAttribute]//结构
-
C#正则表达式获取下拉菜单(select)的相关属性值
给几个在C#中,使用正则表达式取页面下拉菜单(select)中的值示例: 复制代码 代码如下: //取html中全部 select 的 name Regex reg_name = new Regex(@"(?<=<select name=\"").*?(?=\"")"); //取html中全部<select>项的值 Regex reg_select = new Regex("(?is)<select nam
随机推荐
- Backbone.js框架中简单的View视图编写学习笔记
- 对于oracle对session进行跟踪的分析
- Unicode 编码转换器
- 分享一个iOS下实现基本绘画板功能的简单方法
- 网页整体变灰白色(兼容各浏览器)实例
- 深入理解JavaScript创建对象的多种方式以及优缺点
- 自己常用的一些shell脚本分享
- 全flash站制作剖析
- IE与firefox下Dhtml的一些区别小结
- jquery实现图片预加载
- 简单的Ruby中的Socket编程教程
- BootStrap下拉菜单和滚动监听插件实现代码
- 基于javascript简单实现对身份证校验
- 微信小程序 火车票查询实例讲解
- Android实现界面左右滑动切换功能
- python3.4.3下逐行读入txt文本并去重的方法
- Go Web框架gin的入门教程
- Angular2使用SVG自定义图表(条形图、折线图)组件示例
- python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
- Layui 带多选框表格监听事件以及按钮自动点击写法实例