c# 특성(Property)

11012 단어
속성(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 Lpeoples { get; set; }
        private StringBuilder Sbuilder { get; set; }
        public Peoples()
        {
            Lpeoples = new List();
        }
        //                 
        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 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 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의 작업을 수행합니다.CreateSpecificculture("zh-CN")는 결과 출력을 의미합니다.

좋은 웹페이지 즐겨찾기