1.双问号——高效率的写法
string str = req.Form[name] ?? req.QueryString[name] ?? "";
“单问号—用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!
双问号—用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!”
如:
public
int
? para;
//public int para;如果不注释掉此行,而把上一行注释掉的话,下面会报错!
public
int
par()
{
return
this
.para ?? 0;
}
2.使控制台消息不立即消失:
Console.Write("按任意键继续...");
Console.ReadKey();//或者Console.Read();或者Console.WriteLine();3.虚方法与抽象方法的区别
抽象方法:使用abstract关键字
必须被派生类覆写的方法。
抽象方法不能有方法体,如下:
public abstract void print(); 注意这里没有{}但是有;
有抽象方法的类必定要声明为抽象类。
抽象方法可以看成是没有实现体的虚方法。
虚方法:使用virtual关键字
虚方法可以有具体实现的方法体也可以没有,但必须有{},如下
public virtual void print(){} 注意这里没有;
子类可以不覆写父类的虚方法,则调用的时候直接调用父类对应的虚方法。
抽象方法和虚方法都是使用override进行重写
4.虚拟键盘
1 private void button1_Click(object sender, EventArgs e){ 2 this.textBox1.Focus(); 3 for (int i = 65; i < 91; i++) 4 { 5 char MyChar = (char)i; 6 SendKeys.Send(MyChar.ToString()); 7 System.Threading.Thread.Sleep(100); 8 SendKeys.Flush(); 9 } 10 }