C#中的访问修饰符 部分类 密封类 序列化 反序列化

来源:互联网 发布:学java去哪儿好 编辑:程序博客网 时间:2024/05/01 17:37
C#中的访问修饰符:
public------------------:公开的共有的。
private-----------------:私有的,只能在当前类的内部访问。
protected---------------:受保护的,只能在当前类和该类的子类中访问。
internal----------------:默认的。只能在当前项目中访问,在同一个项目中,internal和public的权限是一样的。不加访问修饰符默认就是internal。
protected internal------:默认受保护的。




序列化:就是将对象转换为二进制
反序列化:就是将二进制转换为对象。
序列化和反序列化的作用:传输数据。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;


namespace SerializeDeserialize
{
    class Program
    {
        static void Main(string[] args)
        {
            //执行序列化操作
            //Person p = new Person("张三", 18, '男');
            //using (FileStream fs = new FileStream(@"C:\Users\Administrator\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Write))
            //{
            //    BinaryFormatter bf = new BinaryFormatter();
            //    bf.Serialize(fs, p);
            //}


            //执行反序列化操作
            using (FileStream fsRead = new FileStream(@"C:\Users\Administrator\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Read))
            {
                BinaryFormatter bf = new BinaryFormatter();
                Person p = (Person)bf.Deserialize(fsRead);
                Console.WriteLine("姓名:{0},年龄:{1},性别:{2}", p.Name, p.Age, p.Gender);
                Console.ReadKey();
            }


        }
    }


    [Serializable] //序列化标识
    class Person
    {
        private string _name;


        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        private int _age;


        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }
        private char _gender;


        public char Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }


        public Person(string name, int age, char gender)
        {
            this._name = name;
            this._age = age;
            this._gender = gender;
        }

    }

}




部分类:partial

密封类:sealed   可以继承其他类,但是不可以被继承

partial class Test
    {
        private string _name = "sdfl";
    }


    partial class Test
    {
        public void Say()
        {
            Console.WriteLine(_name);
        }
    }

0 0