饮水思源:金老师的自学网站
自动装箱
基本类型的变量值可以自动装箱到一个object对象中,
反过来,object对象也可以强制转化得到基本类型值。
class Program { static void Main(string[] args) { int i = 3; object obj = i; int j = (int) obj; } }
装箱和拆箱会带来较大性能损失,应当避免。
“只读”对象
什么是“只读”对象:一旦创建,内容不可更改
为什么要设计“只读”对象:多线程环境可以提升程序性能(访问时无需互斥)
如何设计“只读”类:类比高阶函数,当外界期望修改对象的字段值时,不改变原对象内容,而是创建一个新对象以满足需求。
设定启动窗体
static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
new谁,谁就是启动窗体。
ShowDialog与Show
private void button1_Click(object sender, EventArgs e) { var form2 = new Form2(); form2.ShowDialog(); }
如图所示:
ShowDialog后,不关闭从窗体,无法激活主窗体。
而Show则可以:
当然,并不是说Show之后从窗体完全脱离主窗体存在,主窗体结束,从窗体会一同跟着结束。