表达式的定义(Expressions)
- 表达式是任何一门语言的基本组件之一(命令、声明),同样也是组件中最重要的。
表达式这个语法实体的主要功能就是求值,(成功:得结果,失败:得异常)
C#中表达式得具体定义
C#里面的表达式是一个或多个操作数与零个或多个操作符组成的序列,主要功能同样是求值(single value、object、method、invovation)
Single Value<
int x = 100;x++;++x;Object<
(new Form()).ShowDialog();Method<
// Console.WriteLine 就是方法Action myActino = new Action(Console.WriteLine);Namespace<
// System.Windows.Forms 名称空间访问表达式System.Windows.Forms.Form myForm = new Form();各类表达式概览
C# 语言中表达式的分类
- A value. Every value has an associated type.
回顾上一节讲的操作符,并讲解由这些操作符组成的表达式所返回的类型。
条件操作符
?:总会返回精度高的那个类型:var x = 5>3?2:3.0;Console.WriteLine(x.GetType().FullName);// System.Double
A variable. Every variable has an associated type.
int x = 100;int y;y = x;
A namespace.
System.Windows.Forms.Form myForm = new Form();
A type.
var t = typeof(Int32);
A method group
Console.WriteLine,这是一组方法(19 种重载),重载决策决定具体调用那种方法。A null literal.
null 值也是一个值。Form myForm = null;
A property access.
- An event access. ```csharp static void Main(string[] args) { var myForm = new Form(); // 访问属性 myForm.Text = “Hello”; // 访问事件 myForm.Load += MyForm_Load; myForm.ShowDialog(); }
private static void MyForm_Load(object sender, EventArgs e) { var form = sender as Form; if (form == null) { return; }
form.Text = "New Title";
}
- An indexer access.```csharpvar intList = new List<int>() {1, 2, 3 };var x = intList[2];
-
语句的定义
语句是高级语言才有的语法-汇编语言和机器语言只有指令
-
反编译可执行文件(exe)
在计算机的开始界面搜索 visual studio会看到 visual studio tools文件夹
- 在文件夹中找到 Developer Command Prompt(开发人员命令提示符)
- 以管理员权限运行,并在小黑框第一行输入 ildasm(il:中间语言,dasm:反编译)
- 文件 > 打开
可查看名称空间,函数
实例演示控制流(flow of control)
static void Main(string[] args){string input = Console.ReadLine();try //抓取异常{double score = double.Parse(input); //将input解析if (score >= 60) //解析成功{Console.WriteLine("Pass!");}else{Console.WriteLine("Failed!");}}catch //解析失败{Console.WriteLine("Not a number!");}}

程序没变,控制流变了。 

