C#简单笔记

版权声明:本文为博主学习过程中作的笔记~ https://blog.csdn.net/wu_zz/article/details/88084772

1.Directory操作文件夹

    CreateDirectory创建文件夹

    Delete 删除文件夹

    Move剪切文件夹

    Exist判断是否存在

     GetFiles获得指定的目录下所有文件的全路径

2.WebBrowser浏览器控件

   url

3.ComboBox下拉框

DropDownStyle:控制下拉框外观样式

4.OpenFileDialog:打开文件对话框

    SaveFileDialog:保存文件对话框

    FontDialog:字体对话框

    ColorDialog:颜色对话框

5.Process进程类

  ProcessStartInfo:指定打开的进程示例,构造函数参数传入路径

6.Thread多线程

   实例化Thread类,并传入一个指向线程所要运行方法的委托,这时线程已经产生,但是还没有运行

   调用Thread实例的Start方法,标记该线程可以被CPU执行了,但具体执行时间由CPU决定。

   .Net下不允许跨线程访问,但可以指定其不检查:Control.CheckForIllegalCrossThreadCalls = false;

   Abort()方法立即终止线程,无法被重新启动

   前台线程:只有所有的前台线程都关闭才能完成程序关闭

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

   跨线程访问方式:https://www.cnblogs.com/TankXiao/p/3348292.html

7.Socket网络编程

详细说明代码:http://www.cnblogs.com/dotnet261010/p/6211900.html

C# 类扩展方法

扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用

下面以一个代码例子说明

定义一个 Npc 类

  // 定义 Npc 类
    public class Npc
    {
        //定义字段变量
        private int npcId;
        private string name;

        public Npc() { }

        //定义字段变量对应的属性
        public int NpcID
        {
            get { return npcId; }
            set { npcId = value; }
        }

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
    }
使用Npc 类的时候想调用一个同时设置 NpcId 和 Name 的方法,但是定义 Npc 类的时候没有写这样一个方法。怎么办呢,可以直接在 Npc 类中添加一个这样的方法,也可以从Npc 类派生出一个 子类,然后在子类中添加一个满足需求的方法。还有一种方法就是今天要说的直接在 Npc 类中扩展出一个方法。

下面代码直接给 Npc 类扩展出来一个新的方法

    // 扩展 Npc 类
    public static class ExtendNpc
    {
        // 给 Npc 类扩展一个方法 
        // SetIDName(this Npc npc, int id, string name)
        public static void SetIDName(this Npc npc, int id, string name)
        {
            npc.NpcID = id;
            npc.Name = name;
        }
    }

使用如下

class Program
    {
        static void Main(string[] args)
        {
            // 实例一个 Npc 对象
            Npc npc = new Npc();

            // Npc 类对象就可以直接调用扩展方法了
            npc.SetIDName(1000, "HeHe");

            int npcId = npc.NpcID;
            string name = npc.Name;

            Console.WriteLine("npcId    :" + npcId);
            Console.WriteLine("name     :" + name);

            Console.ReadLine();
        }
    }

上面方法轻松实现给 Npc 类添加一个SetIDName方法

扩展方法要点: 
一、定义的扩展类必须为静态类如上 
public static class ExtendNpc

二、定义的扩展方法必须为静态方法如上 
public static void SetIDName(this Npc npc, int id, string name)

三、扩展方法的第一个参数必须使用 this 指定该方法用于那种类型如上SetIDName(this Npc npc, int id, string name) 该方法只能 Npc 类的对象调用。

四、如果 Npc 类本身已经定义了一个 SetIDName 方法,则扩展方法中的 SetIDName无效,即如果扩展方法与该类型中定义的方法具有相同的签名,则扩展方法永远不会被调用。

建议: 
只建议你无法更改源代码来扩充你需要的方法时实现扩展方法,并谨慎地实现。只要有可能,最好重构原始类,或从现有类派生子类来达到这一目的。使用类源代码的更改可能会导致扩展方法失效。

猜你喜欢

转载自blog.csdn.net/wu_zz/article/details/88084772