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
无效,即如果扩展方法与该类型中定义的方法具有相同的签名,则扩展方法永远不会被调用。
建议:
只建议你无法更改源代码来扩充你需要的方法时实现扩展方法,并谨慎地实现。只要有可能,最好重构原始类,或从现有类派生子类来达到这一目的。使用类源代码的更改可能会导致扩展方法失效。