Visual Studio提供的通用对话框控件有:ColorDialog、FolderBrowserDialog、FontDialog、OpenFileDialog、SaveFileDialog、PageSetupDialog、PrintDialog和PrintPreviewDialog。
在使用这些中的某个“通用对话框”控件时,可以向窗体添加该控件,并将其放在控件托盘上。可以保留这些控件的默认名字。如colorDialog1和fontDialog1,因为每种类型只有一个控件可以使用。
显示windows通用对话框
dialogObject.ShowDialog();
示例代码:
本文链接
楼主现在是大四,在某外包公司已经实习有3个 多月了。其实我专业以前是JAVA开发,临到实习兜兜转转学习windows phone开发了。在学习过程中难免会遇到各种纠结和不懂,所以尝试着写写博客,把自己所学或者所遇到的问题记下来。
wp7代码由两部分组成,一部分是负责UI的xaml文件,一部分是负责后台的.cs文件。在学习过程中,除了学习新的wp7知识外,也暗恨自己上学时不够用心,C#基础不扎实。仅从此篇开始陆陆续续复习有关C#的知识,期待大家的指点。
委托和类一样,是一种用户的自定义类型。类表示的是数据的集合,但是委托表示的是一个或者多个方法。
一、声明委托类型
1. 以delegate关键字开头。
2. 没有方法主体。
例:delegate void MyDel (int x);
MyDel(int x)为签名;void是返回类型;MyDel是委托类型名。
二、创建委托对象并赋值
委托是引用类型。所以有引用和对象。委托可以调用静态方法,也可以调用实例方法。
下面ClassA中的HelloChinese是静态方法;classB是ClassB的对象调用ClassB中的HelloChinese实例方法;
MyDel del2 = new MyDel(classB.HelloChinese);
也可以使用快捷语法,如下:
MyDel del2 = classB.HelloChinese;
三、组合委托
del1 = ClassA.HelloChinese;
del2 = classB.HelloChinese;
de3=del1+del2; //组合调用委托
为委托增加方法:
del1 = ClassA.HelloChinese;
del1 += classB.HelloChinese;
从委托移除方法:
注:
1)如果调用列表中有多个实例,-=运算符将从列表最后开始搜索,并移除第一个与方法匹配的实例。
2)如果调用列表为空,委托就是空。
3)试图调用空委托会抛出异常。
四、示例
{
static void Main(string[] args)
{
Test test = new Test();
MyDel del = test.HelloChinese; //声明委托并赋值
del += Test.HelloEnglish; //组合委托
del(", Sir!"); //调用委托
Console.Read();
}
delegate void MyDel(string str);//定义一个没有返回值的委托
}
class Test
{
public void HelloChinese(string strChinese)
{
Console.WriteLine("早上好" + strChinese);
}
public static void HelloEnglish(string strEnglish)
{
Console.WriteLine("Morning" + strEnglish);
}
}
输出:
=======
早上好, sir!
morning, sir!
========
五、调用带返回值的委托
2 {
3 static void Main(string[] args){
4
5 MyClass mc = new MyClass();
6 MyDelegate mDel = mc.Add2;
7 mDel += mc.Add3;
8 mDel += mc.Add2;
9 Console.WriteLine("Value: {0}",mDel());
10 }
11
12 class MyClass {
13 int IntValue = 5;
14 public int Add2() { IntValue += 2; return IntValue; }
15 public int Add3() { IntValue += 3; return IntValue; }
16 }
17 delegate int MyDelegate();
18 }
调用列表中最后一个方法返回的值就是委托调用返回的值。
输出:Value: 12
六、调用带有引用参数的委托
2 {
3 static void Main(string[] args){
4 MyClass mc = new MyClass();
5 MyDel mDel = mc.Add2;
6 mDel += mc.Add3;
7 mDel += mc.Add2;
8
9 int x = 5;
人老了总是忘记语法,记录一下=。。=
条件运算符( ?:)
int iii = 85;
var dd = iii >= 90 ? "A" : iii >= 60 ? "B" : "C";
空合并运算符(??)提供了一种快捷方式,可以在处理可空类型和引用类型时表示null可能的值。
这个运算符放在两个操作数之间,第一个操作数必须是一个可空类型或引用类型;第二个操作数必须
与第一个操作数的类型相同,或者可以隐含地转换为第一个操作数的类型。空合并运算符的计算如下:
<1>.如果第一个操作数不是null ,整个表达式就等于第一个操作数的值
<2>.如果第一个操作数是null,整个表达式就等于第二个操作数的值。
int? a = null;
int b;
b = a ?? 10; //b has the value 10
Console.WriteLine("b:{0}", b);
a = 3;
b = a ?? 10; //b has the value 3
Console.WriteLine("b:{0}", b);
string c = null;
string d;
d = c ?? "default";
Console.WriteLine("d:{0}", d);
c = "c value";
d = c ?? "default";
Console.WriteLine("d:{0}", d);
测试结果
b:10
b:3
d:default
d:c value
本文链接