EffectiveC#16--垃圾最小化

1.申请和释放一个基于堆内存的对象要花上更多的处理器时间。

所以当一个引用类型的局部变量在常规的函数调用中使用的非常频繁时应该把它提升为对象的成员(方法一)

2.当你把一个实现了IDisposable接口的局部变量提升为类型成员时,例如字体或连接,你的类同样也应该实现IDisposable接口(见原则18)

3.使用静态成员变量来创建一些常用的引用类型的实例。(方法二)

4.对于string的操作建议:System.String类是一个恒定类型,在创建一个字符串后它的内容就不能更改。

当你编写代码来修改这些串的内容时,你实际上是创建了新的对象,并且让旧的串成为了垃圾。

应该使用string.Format()方法 和stringbuilder类。

时间: 2024-08-07 06:28:37

EffectiveC#16--垃圾最小化的相关文章

WPF实现窗口最小化到托盘,并且实现右击菜单

原版是从网上找了一位大神的,自己只是用了一点适合自己的. 具体实现 1.首先已经确认WPF中没有实现最小化托盘的类与方法,用到了winform中的程序集 using Drawing = System.Drawing;using Forms = System.Windows.Forms; 2.XAML的后代相应事件的Demo,只是为了看起来方便~!其中也包含了在任务栏中不现实图标,只在托盘中显示.双击实现窗口的还原.没用到大神写的,自己琢磨了个,令人想不到的蛋疼的后果还没出现,也就暂时这样了. 1

转 点击关闭时最小化到任务栏

来源:http://www.2cto.com/kf/201401/274489.html 现在很多软件如360杀毒软件.酷狗音乐都拥有最小化至任务栏并在系统托盘区留下图标,我的项目同样需要该功能.所以本文主要叙述如何使用C#让窗体最小化至任务栏,同时在系统托盘区的图标点击左键能显示窗体,右键能关联控件显示3个常用功能.主要涉及到的控件是NotifyIcon和ContextMenuStrip,此类文章较多,希望作者以自己的独特视角给予大家帮助. 一.界面操作 1.创建"Windows窗体应用程序&

qt5.2.1在linux下去除最大化和最小化按钮

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include <QtGui/QGuiApplication> #include <QDebug> #include <QScreen> #include "qtquick2applicationviewer.h" int main(int argc, char *argv[]) {     QGuiAppl

【Linux】CentOS6.X最小化安装后配置

1.centos6.5最小化安装后启动网卡2.ifconfig查询IP进行SSH链接3.更新系统源并且升级系统4.系统时间更新和设定定时任5.修改ip地址.网关.主机名.DNS6.关闭selinux,清空iptables7.创建普通用户并进行sudo授权管理8.修改SSH端口号和屏蔽root账号远程登陆9.锁定关键文件系统(禁止非授权用户获得权限)10.精简开机自启动服务11.调整系统文件描述符大小12.设置系统字符集13.清理登陆的时候显示的系统及内核版本14.内核参数优化15.定时清理/va

最小化安装CentOS7 + xfce4 +PHP + nginx +mariadb 开发环境

虚拟机自定义最小化安装,新增用户做为管理员,打开自动获取网络,桥接模式.所有的操作只有命令,不做解释,看不明白的可以自行搜索相关的资料. # 开头的行是注释行,# 开头的空行,我自己装机时做了快照.未完待续 1 安装CentOS7 过程: 2 3 # 最小化安装完成快照 4 5 sudo yum install -y wget 6 7 # http://mirrors.163.com/.help/centos.html 8 9 sudo mv /etc/yum.repos.d/CentOS-Ba

ArchLinux最小化安装 必备库 常用命令

铸成强大的工作站环境——ArchLinux最小化安装 所有问题归结起来,只是一个问题:ArchLinux最小化安装,需要安装哪些包? 1.bash//最基本的Bash Shell(必须)2.bzip2//提供bzip2压缩与解压缩功能(非必须,但就算不选它,系统也会自动将其装上)3.coreutils//提供GNU环境下最基本的工具与命令(必须)4.dnsutils//DNS工具(必须)5.file//文件类型识别工具(必须)6.filesystem//提供基本的文件系统结构(必须)7.find

Delphi 7下最小化到系统托盘(主要是WM_TRAYMSG和WM_SYSCOMMAND消息)

在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFYICONDATAA = record   cbSize: DWORD;   Wnd: HWND;   uID: UINT;   uFlags: UINT;   uCallbackMessage: UINT;   hIcon: HICON;   szTip: array [0..63] of Ansi

linux(6.8版本最小化安装)安装nginx实战

1.安装pcre: 查看是否安装过pcre: [[email protected] ~]# rpm -qa pcrepcre-devel pcre-7.8-6.el6.x86_64 若没有则执行安装命令:[[email protected] ~]# yum install pcre-devel -y [[email protected] ~]# rpm -qa pcrepcre-devel pcre-7.8-7.el6.x86_64 pcre-devel-7.8-7.el6.x86_64 2.安

生产服务器环境最小化安装后 Centos 6.5优化配置备忘

本文 centos 6.5 优化 的项有18处: 1.centos6.5最小化安装后启动网卡 2.解决SSH远程链接访问慢优化 3.更新系统源并且升级系统 4.系统时间更新和设定定时任 5.修改ip地址.网关.主机名.DNS 6.关闭selinux,清空iptables 7.创建普通用户并进行sudo授权管理 8.修改SSH端口号和屏蔽root账号远程登陆 9.锁定关键文件系统(禁止非授权用户获得权限) 10.精简开机自启动服务 11.调整系统文件描述符大小 12.设置系统字符集 13.清理登陆