1.在非UI线程中使用Invoke方法控制UI控件。
xxx.Invoke(new Action(()=>{button.Text="Start";}));
2.版本与配置管理中对编译环境,开发环境应当一并规定,版本库中应同时保存相应编译环境软件。
3.C#中List<T>的Find用法。
Find(delegate(Person p){return p.ID==1;});
Find(p=>p.ID==1);
4.C# Using语法糖。该语句定义一个范围,在范围结束时调用类实例的Dispose。使用的对象必须实现IDisposable接口。在编译阶段会自动将using生成try-finally语句。并在finally块中调用对象的Dispose方法。
5.MVC(MODEL-VIEW-CONTROLLER).
MODEL:应用程序中用于处理应用程序数据逻辑的部分。通常负责在数据库中存取数据。
VIEW:应用程序中处理数据显示的部分。通常依据模型数据创建。
CONTROLLER:应用程序中处理用户交互的部分。通常负责从视图中读取数据,控制用户输入,并向模型发送数据。
6.多态性:某派生类型变量可赋给基本类型变量。并可通过该变量调用基类的方法实际执行为派生类中的实现。
可以建立接口类型的变量,然后在支持该接口的对象上,使用这个变量来访问该接口提供的方法和属性。
派生类会继承其基类支持的接口。
7.string,object,数组,所有的类均为引用类型。
struct为值类型。MyClass ObjB = ObjA;//两变量指向同一对象。
MyStruct struA = struB;//两变量分别代表不同的两对象。
8.Internal类修饰符表示程序集内部其他类可见。但对程序集外的类不可见,这样就很好的封装了可见性。
Sealed修饰符表示该类不可被继承。
9.判断某个对象的类型:
myObj.GetType()==typeof(MyComplexClass)
10.析构函数~MyClass(){...}不是重写Finalize()。系统会在调用~MyClass()后调用基类的Finalize()。
11.接口和抽象类都不能直接实例化,但可以声明这些类型的变量。