c#属性(Property)

摘要:
属性是类、结构和接口的命名成员。属性是域的扩展,可以使用相同的语法进行访问。它们使用访问器使私有域的值可读、可写或可操作。

属性(Property)是类(class)、结构(structure)和接口(interface)的命名(named)成员。类或结构中的成员变量或方法称为 域(Field)。属性(Property)是域(Field)的扩展,且可使用相同的语法来访问。它们使用 访问器(accessors) 让私有域的值可被读写或操作。

该代码主要是帮助读者了解属性的用法,代码实现了添加属性值和根据添加的属性值进行筛选

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;

namespace 编码练习
{
    //创建一个类包含两个属性
    class People
    {
        public string Name { get; set; }
        public string Address { get; set; }
        public People(string name, string address)
        {
            this.Name = name;
            this.Address = address;
        }

    }
    //继承两个接口(枚举/格式化)
    class Peoples : IEnumerable
    {
        //创建一个对象列表
        private List<People> Lpeoples { get; set; }
        private StringBuilder Sbuilder { get; set; }
        public Peoples()
        {
            Lpeoples = new List<People>();
        }
        //创建一个可以往列表加属性实例的方法
        public void Add(People people)
        {
            Lpeoples.Add(people);
        }
        //获取对象值
        public IEnumerator GetEnumerator()
        {
            foreach (var p in Lpeoples)
            {
                yield return p;
            }
        }

        public override string ToString()
        {
            return GetContent(Lpeoples);
        }
        public string Tostring(string format)
        {
            return ToString(format, CultureInfo.CreateSpecificCulture("zh-CN"));
        }
        public string ToString(string format, IFormatProvider formatProvider)
        {
            IEnumerable<People> ps = Lpeoples;
            if (format.ToUpperInvariant() == "B")
            {
                ps = from p in Lpeoples where p.Address == "北京" select p;
            }
            else if (format.ToUpperInvariant() == "S")
            {
                ps = from p in Lpeoples where p.Address == "上海" select p;
            }
            return GetContent(ps);
        }
        //将数据连接到数组
        private string GetContent(IEnumerable<People> peoples)
        {
            Sbuilder = new StringBuilder();
            foreach (var p in peoples)
            {
                Sbuilder.AppendLine(string.Format("{0}{1}", p.Name, p.Address));
            }
            return Sbuilder.ToString();
        }
    }
    public class Start
    {
        public static void Main()
        {
            Peoples peoples = new Peoples()
            {new People("zhangsan","北京"),new People("lisi","上海"),new People("wangwu","北京"),new People("naliu","北京")};
            Console.WriteLine("本站会员有:");
            Console.WriteLine(peoples.ToString());
            Console.WriteLine("北京的会员有:");
            Console.WriteLine(peoples.Tostring("B"));
            Console.WriteLine("上海的会员有:");
            Console.WriteLine(peoples.Tostring("S"));
            Console.ReadLine();

        }
    }
}

附加知识:

  IFormatProvider接口的引用,该接口用于格式化操作,当进行数字,日期时间,字符串匹配时,都会进行CultureInfo的操作,文中CultureInfo.CreateSpecificCulture("zh-CN")意为结果输出的是<简体,中国>

免责声明:文章转载自《c#属性(Property)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇销售订单BAPI增强【Android开发】之MediaPlayer的错误分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

40.lombok在IntelliJ IDEA下的使用

转自:https://www.cnblogs.com/yjmyzz/p/lombok-with-intellij-idea.html lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码。代码越少,意味着出bug的可能性越低。 官...

JAVA 实现CLOB转String

CLOB 定义   数据库中的一种保存文件所使用的类型。   Character Large Object   SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。默认情况下,驱动程序使用 SQL locator(C...

Eclipse paho学习笔记

Eclipse Paho java 支持java和android 两个客户端异步和同步, MqttAsyncClient,MqttClient 其中 后者是前者的包装同步器,特效除了5.0都支持 有两个版本可以相互替换 <dependency> <groupId>org.eclipse.paho</...

java 将数据库中的每一条数据取出放入数组或者List中

1、如何将数据库中数据按照行(即一整条数据)取出来,存入到数组当中? public static String str = null; // 将StringBuffer转化成字符串 public static StringBuffer sb = new StringBuffer(); // StringBuffer便于字符串的增删改查操作...

TreeSet使用

TreeSet使用 TreeSet是有序的集合,自动按照升序排序。 特性说明 实现了SortedSet接口,不允许重复的元素。 TreeSet里面的元素按照增序排列 TreeSet不会按序保存插入的元素,而是按照键值对排序(自动增序) 如果以来自然顺序,那么TreeSet只允许插入相同类型并且可以比较的元素。 操作说明 添加元素 import jav...

XmlDocument的应用创建Xml模板

 protected void btnCreate_Click(object sender, EventArgs e)        {            //定义XMLDocument            XmlDocument xmlDocument = new XmlDocument();            //定义XML文档头文件   ...