一直很好奇 C# 与 .Net 的关系,之前也没有接触过。因为项目需要,开始学习 .Net 框架。
一、 .NET、CLR、MSIL 之间的区别与联系
.Net 是一个面向 Web 服务的开发平台,可以用来快速的搭建 C#、VC++、VB
等程序。CLR(公共语言运行时) 是执行 .Net 程序,提供开发和调试功能。MSIL 是 CLR 的中间语言,不同的 .Net 语言在 CLR 中被编译成
MSIL 形成一个统一的程序从而保证了 .Net 框架的独立性。
二、第一个 Windows 可视化程序上手练习
创建 “WPF 应用程序” 或 “Windows 窗体应用程序” 项目,通过 “视图->工具箱” 中的组件向画布中添加元素即可,这个操作与 Dreamware 中的页面布局操作很相似。添加的组件将被写到 xaml 文件中(如果是 WPF 项目)。组件的属性可以通过编辑 xaml 或者通过可视化界面的 Properties 来进行调整。完成布局后,编写相应组件的逻辑代码。
向资源中添加文件,Properties-> Resources -> Add Rersource -> Add existing file to resources;在代码中可以通过如下方式访问添加的资源
1
2 |
imageNum = (imageNum+1) % 3; ImgBox.Image = (Image)(Properties.Resources.ResourceManager.GetObject( string .Format( "image{0}" , imageNum))); |
三、C# 语言特性
属性和 set 与 get 方法:可以在客户代码的格式与私有实例变量的存储格式之间进行转换;可以完成数据验证;类内操作的逻辑分离便于维护。
引用类型与值类型:[参考Java]
decimal 类型:精确存储有限范围的实数,在数字末尾加上字母 M 或 m。
switch:switch 语句不会遍历所有分支标签,每个分支后面必须包含一条终止这个分支的语句,如 break,return 或 throw。两个分支标签可以连续出现作为一个分支标签进行判断。
ref 和 out 参数:参数声明使用 ref 可以按引用将变量传递给方法;out 创建一个输出参数,告诉编译器这个实参按引用传入被调方法。
foreach:迭代变量类型需要与IEnumerable<T>(如数组变量类型)相兼容。
LINQ:可以编写查询表达式,从各种数据源取得信息,包括 LINQ to Entities/XML/Objects。这种编程模式称为声明式编程。LINQ 还包括了使用 var 类型推断声明;Any,First,Count 扩展方法。
1
2
3
4 |
from e in
enumerators orderby
xxx descending / ascending where
xxx select
xxx (or 匿名新类型 new
{xxx}) |
readonly 与 const:readonly 变量可以在类的构造函数中进行实例化,即运行时实例化;const 必须在编译时赋值。
virtual、abstract 与 override:virtual/abstract 表示派生类中重写基类的属性或方法;override 声明表示在派生类中重写基类的 virtual/abstract 方法,它会隐式地将派生类方法声明为 virtual。
运算符重载:[参考 msdn operator]
as 运算符:执行向下强制转换运算,成功返回对象的引用,否者,为 null。
using 语句:简化代码的编写、获得资源、在 try 语句块中使用资源并在对应的 finally 语句块中释放资源,其中,资源必须是 IDisponsable 接口的对象。using 语句的一般格式为(其中,ExampleClass 实现 IDisposable 接口):
1
2
3 |
using
(ExampleClass e= new
ExampleClass()){ e.SomeMethod(); } |
原文:http://www.cnblogs.com/lf1205/p/3556626.html