C#字段 属性

  1 /*字段 属性
  2  * User: YuanWei
  3  * Date: 2015/1/11
  4  * Time: 20:03
  5  * 先有封装,然后才有继承,最后才能谈多态
  6  * 多态意味着一个方法或类型可以有多种形式的实现
  7  * 方法多态:new virtual override,接口的成员实现
  8  * 类型多态,继承  接口的实现
  9  * 封装:对象将数据和方法组合到一起,还可以隐藏数据和行为,使用属性封装字段
 10  * 封装的级别:5个:public internal protected,private,protected internal
 11  * 类成员的默认访问级别是private
 12  * 方法代表行为
 13  * 属性代表数据
 14  * 优先写自动实现的属性而不是由支持字段的属性
 15  * Indent缩进,initial最初的,initialize初始化,catalog目录,动词是登记的意思,validate验证,assignment分配,工作任务
 16  * implement 实现,instance实例,declare声明,definition定义,
 17  * 一般最好只在属性实现的内部访问支持字段,在属性实现的外部最好不要使用支持字段
 18  * value是set方法的参数,属性里面的两个方法:public void set(属性类型 value){},public 属性的类型 get(){},也可以为这两个访问方法加上修饰符
 19  * 在这里面写程序的最高境界是什么线都不会报,那就是完美的,最优的写法了
 20  * 写代码就要讲求最优的写法,代码的规范性
 21  */
 22 using System;
 23 using System.IO;
 24
 25 namespace LearningClass
 26 {
 27     class Program
 28     {
 29         //构造器调用的是System.Object的构造器Finalize()
 30         public static void Main(string[] args)
 31         {
 32 //            Employee e=null;//定义一个类型为Employee的变量e,并且不指向任何地方
 33 //            e=new Employee();//new操作符指示“运行时”为Employee对象分配内存,实例化对象,并返回对象的引用
 34             var employee=new Employee("Zhang","San","MoreMoney");
 35             employee.Save();
 36             // TODO: Implement Functionality Here
 37             Console.ReadKey(true);
 38         }
 39     }
 40     public class Employee
 41     {
 42         /// <summary>
 43         /// 构造函数
 44         /// </summary>
 45         public Employee()
 46         {
 47         }
 48         public Employee(string firstName,string lastName,string salary)
 49         {
 50             FirstName=firstName;
 51             LastName=lastName;
 52             Salary=salary;
 53         }
 54         private string _FirstName;//声明支持字段,如果属性是简写形式的话可以省略支持字段,在编译的时候自动将属性规范化加上支持字段
 55         private int _Age;//支持字段
 56         private double _Sight;
 57         //属性的完整写法,有相应的支持字段
 58         public string FirstName//像这种里面不进行什么的话,最好是用自动属性,虽然是正确的写法,但是这样写不是最优的
 59         {
 60             get{return _FirstName;}
 61             set{_FirstName=value;}
 62         }//未添加set和get的方法的属性简写形式
 63         public string LastName{set;get;}//自动属性的写法,编译器会自动生成相应的支持字段,并写成完整的形式,可读可写属性
 64         public string Salary{get;set;}
 65         //只读属性,get方法里面必须有实现
 66         public  static int Height{ //像这种一般是只读的属性,就是共广大群众使用的,设置为静态的比较好,才是最优的
 67             get
 68             {
 69                 return 20;
 70             }
 71         }
 72         //只写属性,set方法里面必须有实现,举得例子不太符合实际的生活情况但是能够说明问题
 73         public double Sight
 74         {
 75             set
 76             {
 77                 _Sight=value;
 78             }
 79         }
 80         public int Age//属性的正确用法
 81         {
 82             get
 83             {
 84                 return _Age;
 85             }
 86 //            pubilc int Get_Age()
 87 //            {
 88 //                return _Age;
 89 //            }
 90             private set //为set方法加上modifier of private 这个方法就只能在本类内部进行访问
 91             {
 92                 if(value >100||value <0)
 93                 {
 94                   throw new Exception("Age is usefull");
 95                 }
 96                 else
 97                 {
 98                 _Age=value;
 99                 }
100             }
101 //            pirvate void Set_Age(int value)
102 //            {
103 //                _Age=value;
104 //            }
105         }
106
107         public void Save()
108         {
109             DataStorage.Store(this);
110         }
111         /// <summary>
112         /// 析构函数
113         /// </summary>
114         ~Employee()
115         {
116             //编译到CIL的时候就是一个Finalize()方法,最终调用的是System.Object的Finalize()
117         }
118     }
119     public static class DataStorage
120     {
121         public static void Store(Employee employee)
122         {
123
124             var stream=new FileStream(employee.FirstName+employee.LastName+".dat",FileMode.Create);
125             var write=new StreamWriter(stream);
126             write.WriteLine(employee.FirstName);
127             write.WriteLine(employee.LastName);
128             write.WriteLine(employee.Salary);
129             write.Close();
130         }
131         public static Employee Load(string firstName,string lastName)
132         {
133
134             var employee=new Employee();//对于这种变量(variable)最好可以用 ‘var’
135             var stream=new FileStream(firstName+lastName+".dat",FileMode.Open);
136             var read=new StreamReader(stream);
137             employee.FirstName=read.ReadLine();
138             employee.LastName=read.ReadLine();
139             employee.Salary=read.ReadLine();
140             stream.Close();
141             return employee;
142         }
143     }
144 }
时间: 2024-07-29 14:01:44

C#字段 属性的相关文章

Access中的数据类型和字段属性

数据类型 用途 文本 字符.数字或字符与数字的任意组合,不能用于计算.最长255个字符,默认长度为50个字符.对于指定的大小,存放中文汉字与英文字母的个数都是一样的 备注 超长的文本,用于注释或说明,最长65535个字符 数字 用于计算的值,1.2.4或8字节 日期/时间 表示日期和时间,可用于计算,最多8字节 货币 表示货币的数据类型,可用于计算,小数点左边最多为15位,右边可精确到4位,最多8字节 自动编号 Access为每条记录提供唯一值的数值类型,常用做主码,4字节 是/否 布尔型,1字

数据值、列类型和数据字段属性

数据值:数值型.字符型.日期型和空值等. 数据列类型 2.1 数值类的数据列类型 2.2 字符串类数据列类型 2.3 日期和时间型数据数据列类型 另外,也可以使用整形列类型存储UNIX时间戳,代替日期和时间列类型,这是基于PHP的web项目中常见的方式.例如,图书的发布时间,就          可以在创建books表的时候使用整型列类型,然后调用PHP的time()函数获取当前的时间戳存在该列中. 3.数据字段属性 1)unsigned:该属性只能用于设置数值类型,不允许数据列出现负数. 2)

1.4.2 solr字段类型--(1.4.2.7)字段属性使用案例

1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期) (1.4.2.5) 使用枚举字段 (1.4.2.6) 使用外部文件和程序 (1.4.2.7) 字段属性使用案例

SQL SERVER中某个字段属性为varchar,我想把这个字段改成int型

SQL SERVER中某个字段属性为varchar,我想把这个字段改成int型? 这个就有点恼了,作为新手面对这些问题真有点难,这个也是我在百度上查到的,作为基础的整理吧,以后遇到方便查看. 用SQL语句:alter table [aa] alter column bb int eg: 这个是我的例子. 执行成功可以刷新一下数据库(如还是不可以,那就断开现有连接,再次连接就好.)

二、修改表、字段属性设置、索引设置、约束设置

 字段属性设置 not null 不为空 auto_increment 设定int类型字段的值可以"自增长",即其值无需"写入",而会自动获得并增加 注:此属性必须随同 primary key  或 unique key 一起使用. [primary] key: 设定为主键.是唯一键"加强":也不能重复并且不能使用null,并且可以作为确定任意一行数据的"关键值" unique  [key] : 设定为唯一键:表示该字段的

分割工具——按字段属性

在以前的文章ArcGIS按字段属性分割文件 中写到如何通过ArcGIS或FME来按字段属性表中字段来分割文件,甚至有网友还写出了模型文件.今天用了分割工具才恍然大悟,原来ESRI早就做好了这个工具. 如果要按属性表字段内容来分割,只需要在分割工具的参数中设置输入要素和分割要素均为同一要素,即我们要操作的要素,然后选择分割的字段即可.若有多个要素图层,可使用批量处理.参数设置示例如下: 得到的结果如图:

字段属性--主键

字段属性 主键,唯一键和自增长 主键 主键:primary key,主要的键,一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复:这种称之为主键 一张表里只能有最多一个主键 增加主键SQL操作中有多种方式可以给表增加主键:大体可以分为三种方案1:在创建表的时间,直接在字段之后,跟primary key关键字(主键本身不允许为空) 优点:非常直接:缺点:只能使用一个字段作为主键 方案2:在创建表的时候,在所有的字段之后,使用primary key(主键字段列表)来创建主

Mysql explain分析SQL语句之字段属性说明

在 explain的帮助下,您就知道什么时候该给表添加索引,以使用索引来查找记录从而让select 运行更快.如果由于不恰当使用索引而引起一些问题的话,可以运行 analyze table来更新该表的统计信息,例如键的基数,它能帮您在优化方面做出更好的选择. explain 返回了一行记录,它包括了 select语句中用到的各个表的信息.这些表在结果中按照mysql即将执行的查询中读取的顺序列出来.mysql用一次扫描多次连接(single- sweep,multi-join)的方法来解决连接.

SqlServer查询出数据库中所有的表及其字段属性

代码如下所示: /********************************* SqlServer查询出数据库中所有的表及其字段属性 *********************************/ SELECT ( CASE WHEN a.colorder = 1 THEN d.name ELSE '' END ) AS 表名 ,--如果表名相同就返回空 a.colorder AS 字段序号 , a.name AS 字段名 , ( CASE WHEN COLUMNPROPERTY(a