关于C#的学习

 

长期以来对C#的认识一直停留在微软件开发的完全面向对象的语言的模糊印象上,对其工程也缺乏多文件以上级别的修改能力,而当前流行度的驱使下,想深入了解它并运用。

 

于是从git上下载了一个C#开源项目,打开工程查看了一翻。。。

 

一、工程

  工程以.cs文件为主,少编译出来的二进制文件,以及工程配置文件是其它后缀。

  虽然后缀大多是.cs,但工程还是以不同特定命名的文件来分开存储不同功能的文件。

  代码及其源文件都是.cs文件,并且与C/C++不同的是它没有头文件,可能这是C/C++程序员在刚接触时最大的障碍了。

  C#中有许多开源库,但以引用的形式包含在工程中,这替代和简化了类似C/C++头文件的功能。

  C#中多出了委托、事件机制, 委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。类或对象可以通过事件向其他类或对象通知发生的相关事情。发送(或引发 )事件的类称为“发布者” ,接收(或处理 )事件的类称为“订阅者” 。

 

二、运算符

  学一种新的语言,最关键的还是先了解其运算符,运算符是语言的芯片。这也是构成整个语言最基本的规则。所有的数据无论是关键字、变量、表达式,都需要有运算符连接起来才有意义,否则,也不过一个死的字母堆。

  语言因为运算符而千变万化,驾驭运算符就犹如天地间的弄潮儿,上九天、下五洋。

 

  了解到C#的一些关键特性之后,与C/C++相比,需要特别注意的运算符便有以下几种:(如果重载 ==,则还必须重载 !=)

 

  +  运算符既可作为一元运算符也可作为二元运算符,委托类型也提供二元 + 运算符,该运算符执行委托串联。

  -  运算符既可作为一元运算符也可作为二元运算符,委托类型也提供二元 - 运算符,该运算符执行委托移除。

*  乘法运算符 (*),用于计算操作数的积。另外还用作取消引用运算符,允许读取和写入指针。* 运算符还用来声明指针类型和取消引用指针。该运算符只能在不安全的上下文中使用,通过unsafe 关键字的使用来表示,并且需要 /unsafe 编译器选项。取消引用运算符也称为间接寻址运算符。

&   运算符既可作为一元运算符也可作为二元运算符。一元 & 运算符返回操作数的地址(要求 unsafe 上下文)。

+=  加法赋值运算符,不能直接重载 += 运算符,但用户定义的类型可以重载 + 运算符(请参见 operator)。【联系到+与委拖相关的功能,想必这个运算符也具有该功能,其它相关符号类似】

<<=  左移赋值运算符。

->  运算符将指针取消引用与成员访问组合在一起。-> 运算符只能在非托管代码中使用。不能重载 -> 运算符。

??  如果 ?? 运算符的左操作数非空,该运算符将返回左操作数,否则返回右操作数。

 

特殊的,下边这个符号未被收录在C#的运算符中,只用在了类继承之中

 :  用于继承

 

三、关键字

  主要关注了一下C#与C/C++中不同的关键字,以便快速了解语法

  几个典型的关键字如:

  decimal  16字节的浮点,比double类型浮点8字节大一倍。

  delegate 是一种可用于封装命名方法或匿名方法的引用类型。

  event 关键字用于声明发布服务器类中的事件。

 

  通过关键字,可以知道,C#是强类型的

 

 

posted @ 2019-11-28 19:59  IceArrow  阅读(186)  评论(0编辑  收藏  举报