C#的简单记录

大致看了下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();
    }
  }
}