1.WeakReference
对一个大的对象,不再引用,以后有可能还要使用,则建立弱引用,如果对象未被GC,则可以直接使用,节省创建时间(一般用不到)
class Program
{
static void Main(string[] args)
{
Person p = new Person(){
Name = "Kobe",
Gender = "Male",
Age = 36
};
WeakReference wr = new WeakReference(p);//创建若引用
p = null;
Console.WriteLine("p=null");
Console.WriteLine(wr.IsAlive);//判断弱引用对象是否还活着
object o = wr.Target;//获取引用对象的目标,其类型为object
if(o != null)
{
Person p1 = o as Person;
Console.WriteLine(p1.Name );
}
}
}
public class Person
{
public string Name { get; set; }
public string Gender { get; set; }
public int Age { get; set; }
}
2.StringBuilder
用于字符串的连接,处理速度很快
static void Main(string[] args)
{
//普通的字符串连接
//string[] lines = File.ReadAllLines("test.txt",Encoding.Default);
//string msg = string.Empty;
//Stopwatch sw = new Stopwatch();
//sw.Start();
//for (int i = 0; i < lines.Length ; i++)
//{
// msg = msg + lines[i];
//}
//sw.Stop();
//Console.WriteLine(sw.Elapsed );//运行程序所用时间
string[] lines = File.ReadAllLines("test.txt", Encoding.Default);//读取文件路径
StringBuilder sb = new StringBuilder();
Stopwatch sw = new Stopwatch();//跑表
sw.Start();
for (int i = 0; i < lines.Length; i++)
{
sb.Append(lines[i]);
}
sw.Stop();
Console.WriteLine(sw.Elapsed );//运行程序所用时间
Console.ReadKey();
}
3.格式控制
//有关数字格式化隐性使用IFomatProvider的例子
#if true
//货币
Console.WriteLine(string.Format("显示货币格式{0:c3}",12));//¥12.000
//十进制
Console.WriteLine("显示货币十进制格式{0:d10}", 12);//0000000012
//科学计数法
Console.WriteLine("科学计数法{0:e5}",12);//1.20000e+001
//固定点格式
Console.WriteLine("固定点格式 {0:f10}",12);//12.0000000000
//常规格式
Console.WriteLine("常规格式{0:g10}",12);//12
//数字格式(用分号隔开)
Console.WriteLine("数字格式 {0:n5}:",666666666);//666,666,666.00000
//百分号格式
Console.WriteLine("百分号格式(不保留小数){0:p0}",0.55);//%55
//16进制
Console.WriteLine("16进制{0:x0}", 12);//c
// 0定位器 此示例保留5位小数,如果小数部分小于5位,用0填充
Console.WriteLine("0定位器{0:000.00000}",1222.133);//1222.13300
//数字定位器
Console.WriteLine("数字定位器{0:(#).###}", 0200.0233000);//(200).023
//小数
Console.WriteLine("小数保留一位{0:0.0}", 12.222);//12.2
//百分号的另一种写法,注意小数的四舍五入
Console.WriteLine("百分号的另一种写法,注意小数的四舍五入{0:0%.00}", 0.12345);//12%.34
Console.WriteLine("\n\n");