C#学习笔记三

静态函数中访问的成员必须是静态成员。

1.C#访问修饰符

  1. public :公开的
  2. private:私有的,只能在当前类的内部访问
  3. protected:受保护的,只能在当前类的内部以及该类的子类中访问。
  4. internal :只能在当前程序集(项目)中访问,在同一个项目中,internal和public的权限是一样的
  5. internal protected

简单工厂设计模式

1.核心就是用抽象类方法写出多态

序列化和反序列化

目的: 将一个复杂的对象转换流,方便我们的存储与信息交换。

Serializable

  1. 序列化类对象,先将类标记为可被序列化 类前面加 [Serializable]

         //要将p这个对象 传输给对方电脑
         Person p = new Person();
         p.Name = "张三";
         p.Gender = '男';
         p.Age = 20;
    
         using (FileStream fsWrite = new FileStream(@"C:\Users\xuzheng\Desktop\111.txt", FileMode.OpenOrCreate, FileAccess.Write))
         {
             //star serializable
             BinaryFormatter bf = new BinaryFormatter();
             bf.Serialize(fsWrite, p);
         }
         Console.WriteLine("序列化成功");
         Console.ReadKey();
    
     //接收对方发过来的二进制 反序列化成对象
         Person p;
         using (FileStream fsRead = new FileStream(@"C:\Users\xuzheng\Desktop\111.txt",FileMode.Open,FileAccess.Read))
         {
             BinaryFormatter bf = new BinaryFormatter();
             p = (Person)bf.Deserialize(fsRead);
    
             Console.WriteLine(p.Name);
             Console.WriteLine(p.Gender);
             Console.WriteLine(p.Age);
             Console.ReadKey();
         }
    

MD5加密

public static string GetMD5(string str)
    {
        MD5 md5 = MD5.Create();
        //开始加密
        byte[] buffer = Encoding.Default.GetBytes(str);
        byte[] MD5Buffer = md5.ComputeHash(buffer);

        string str2 = "";
        for (int i = 0; i < MD5Buffer.Length;i++)
        {
            str2 += MD5Buffer[i].ToString("x2");
        }

        return str2;
    }

Process(处理) 进程处理

//获得等钱程序中所有正在运行的进程
Process[] pros = Process.GetProcesses();
//通过进程打开一些应用程序
Process.Start("calc");
Process.Start("iexplore","http://www.baidu.com");

//通过一个进程打开指定的文件
ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\t.txt");
Process p = new Process();
p.StartInfo = psi;
p.Start();

线程 Thread

//创建一个线程并执行Test方法
Thread thr = new Thread(Test);
//变成后台线程
thr.IsBackground = true;
//线程可以执行了
thr.Start();

//结束线程 
thr.Abort();
  1. .Net 不允许跨线程执行

     //取消跨线程访问检查
     Control.CheckForIllegalCrossThreadCalls = false;
    
  2. 前台线程:只有所有的前台线程都关闭才能完成程序关闭。

  3. 后台线程:只要所有的前台线程结束,后台线程自动结束。

struct 结构和类的异同

定义:struct 结构体:1.值类型. 2.可以写字段和属性 3.可以写方法

结构和类的区别

  1. 在类中,构造函数里,既可以给字段赋值也可以给属性赋值,但是在结构的构造函数中,必须只能给字段赋值。

  2. 在结构的构造函数中,需要给全部的字段赋值,而不能选择的给字段赋值

  3. 结构和类的构造函数:

    1> 相同点:

     不管是结构还是类,本身都会有一个默认的无参数的构造函数。
    

    2> 不同点:

     1. 当在类中写了一个新的构造函数后,默认的无参构造函数就被干掉了。
    
     2. 在结构中,如果新写了一个构造函数,默认的无参构造函数依然在。
    
  4. 如果只是单纯的存储数据,推荐使用结构.

    如果使用面向对象的思想开发,使用class

单例

  1. 将构造函数设置为private

  2. 创建一个返回static函数返回对象本身

  3. 创建一个单例。

     public class Person
     {
         //全局的唯一单例
         public static Person PersonSingle = null;
    
         //1..将构造函数私有化 public 转为 private
         private Person()
         {
    
         }
    
         //2.创建一个static 方法返回Person对象
         public static Person GetSingle()
         {
             if(PersonSingle == null)
             {
                 PersonSingle = new Person();
             }
          return PersonSingle;
         }
     }
    

委托 匿名函数 lamda表达式

namespace _06_匿名函数
{
    //委托
    public delegate void DelSayHi(string name);

    class Program
    {
        static void Main(string[] args)
        {
         //匿名函数
         DelSayHi del = delegate (string name)
            {
                Console.WriteLine("你好" + name);
            };

            del("张三"); //打印:你好张三
            Console.ReadKey();
        

            //lamda表达式
            DelSayHi ddel = (string name) => { Console.WriteLine(name); };
            ddel("张三");//打印:张三

        }


    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 进程和线程 进程 所有运行中的任务通常对应一个进程,当一个程序进入内存运行时,即变成一个进程.进程是处于运行过程中...
    胜浩_ae28阅读 5,084评论 0 23
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 可以 很开心地 望着天空傻笑 哪怕天空下着雨 可以 无聊地望着水田...
    孙浒胡阅读 226评论 0 0
  • 抖音如今还处于野蛮生长期,其玩法多种多样,遍地流量。如今在抖音做广 告,做的好流量转化率是极高的,想要抓住这波红利...
    最好存差不多阅读 461评论 0 0
  • 主要针对自己手动解析h264裸流文件得到,分割得到buffer给ffmpeg解析 在网上找了很久这方面的内容,发现...
    _小老虎_阅读 1,465评论 0 1