随笔分类 - C#
摘要:约束告知编译器类型参数必须具备的功能。 在没有任何约束的情况下,类型参数可以是任何类型。 编译器只能假定 System.Object 的成员,它是任何 .NET 类型的最终基类。 如果客户端代码使用不满足约束的类型,编译器将发出错误。 通过使用 where 上下文关键字指定约束。
最常用的泛型约束为where T : struct、where T : class、where T : new()。
阅读全文
摘要:之前接手同事的项目,是一个类似于服务端后台的Winform程序,主界面隐藏起来,只再任务栏显示程序图标。
整个项目里面没有日志记录功能,全靠Console.WriteLine打印信息。自己调试时可以用VS查看输出的内容,但给测试人员使用时很不方便。
最终,我选择将Console.WriteLine的输出内容记录到日志文件。
代码很简单,就不过多解释了,重点注意Console.SetOut方法 、 ConsoleLogTextWriter类即可,日志类Log根据需求自己实现。
阅读全文
摘要:前几天用SerialPort类写一个串口的测试程序,关闭串口的时候会让界面卡死。网上大多数方法都是定义2个bool类型的标记Listening和Closing,关闭串口和接受数据前先判断一下。我的方法是DataReceived事件处理程序用this.BeginInvoke()更新界面,不等待UI线程执行完委托就返回。
阅读全文

浙公网安备 33010602011771号