C#知识点

1.CallerMemberName、CallerFilePath、CallerLineNumber特性

在.Net 4.5中引入了三个Attribute:CallerMemberName、CallerFilePath和CallerLineNumber。在编译器的配合下,分别可以获取到调用函数名称,调用文件及调用行号。

应用场景:
使用CallerMemberName简化InotifyPropertyChanged的实现,日志类。

2.C#泛型比较数的大小

泛型后加 where T : IComparable ,比较泛型的方法 调用t1.CompareTo(t2),判断范围的数正负和零的情况

3.C#在程序中开启进程后关闭,在命令行中开启要开启的进程正常的原因

// 原始代码
processes.Add(System.Diagnostics.Process.Start(toolStripMenuItem.Tag.ToString()));

// 修正后的代码
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = toolStripMenuItem.Tag.ToString();
p.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory + @"Tools"; // 设置工作路径
bool b = p.Start();
processes.Add(p);

产生原因,命令行程序中,使用了相对路径,没设置工作路径时查找对路径不正确,并且命令行程序没有抛出异常排查困难。

4.List的一种用法

List可以表示一个学生集合,users通过继承list也能实现学生集合,并且在users中通过自定义方法,将在其他类中的方法,封装到users类本身当中。

 // 示例
List<User> 

// user构造函数
Users:List<user> 

// using Users
using Users = System.Collections.Generic.List<User>;
posted @ 2022-04-02 21:31  wqq1027  阅读(86)  评论(0)    收藏  举报