大致看了下C#,感觉就是C++的加强版,简直是一个娘胎出来的,就像是微软把C++拿来磨了磨,然后宣布这是比C++更锋利的语言,它叫C Sharp
.
C++有的功能和特性,它都有;C++没有的功能,它也有,比如GC,Delegates,Events Management,还有Lambda表达式(这个功能C++11已经支持了,但还没看,要抽几天总结下C++11的特性)等,反正总结来说比C++更加智能,方便已经安全.
有了C和C++的经验,入门C#应该是不费吹灰之力的,编程环境当然也是在Windows下的,装个Visual Studio 2013就啥都有了,C和C++的开发环境也自动安装,Visual Studio真的就是Niubility.
一个完整的C#程序包含了一下几个部分:
1. Namespace Declaration
2. Class Method
3. Class Attribute
4. Main Function
5. Statements & Expressions
写个Hello World:
using System;
namespace hello{
class HelloWorld
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Console.ReadLine(); //阻塞,等待输入entry
}
}
}
总的来说,C#和C++太像,指针保留着相同的功能,同样存在类型的显式转换和隐式转换,其他的变量/常量/运算符/循环/判断 的运用方法都是一样的,直接套用即可.
常量
所有语言的常量都大同小异.即常规的变量,它们的值在定义后不能被修改.C#的常量同C++一样,除了字符串类型,没有特殊的.
整数与浮点
整数的常量可以指定前置基数:
0x代表16进制,0代表8进制,默认则为十进制.
可以指定后置基数:
u代表unsigned,l代表long 大小写皆可
浮点的常量需要包含小数点,小数部分和整数部分.
指数是用e(E)表示.
字符与字符串
C#中的转义字符与C++一样.
const常量
与C++一样.
封装
这里就有些不一样了,C#的封装比C++要强大:
– public: 同C++,所有对象都可访问
– private: 同C++,仅对象内部成员访问
– protected: 同C++,仅对象内部成员或子类对象内部成员访问
– internal: C#特有,同一个程序集的对象可以访问
– protected internal: C#特有,仅限于当前程序集或派生自包含类的类型访问
并且在不指定任何访问修饰符的情况下,则类成员或类方法的默认访问修饰符为private.
引用与引用传参
同C++类似的,引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用.而引用传承就是对一个变量的内存地址的引用.
在C++中使用关键字符&
,而C#中使用ref
.
输出传递参数
这个我就觉得相当于将引用,但要加上修饰参数out
.
比如:
using System;
namespace testout{
class TestOut{
public void outFunc(out int v){
v = 9527;
}
static void Main(string[] args){
TestOut t = new TestOut;
int val = 1;
t.outFunc(out val);
Console.WriteLine(val);
Console.ReadLine();
}
}
}