C#

1. #region   后面可以写代码注释

    #endregion

可以把其中的代码折叠-打开

2. 控制台程序输出的时候解决一闪而过的问题。

  Console.WriteLine("aaa");

  Console.ReadKey();//屏幕不会一闪而过

3. ref应用

int n1=10,n2=20;

swap(n1,n2);//值传递

swap(ref n1,ref n2);//引用传递

4.可变参数   params    

 类似 java中为GetMax(T... t)类型为T的数组

public static int GetMax(params  int[]  pms)

{

}

5.  c#中的split参数

     #region 将字符串"    hello     world   ,你     好 世界 !     "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world,你 好 世界 !"。

   string msg ="    hello     world   ,你     好 世界 !     ";
   msg = msg.Trim();//这样表示去掉两边空格
   string[] words = msg.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);//去掉为空字符串的项
   msg = string.Join(" ", words);//将返回的字符数组用空字符串连接起来

   Console.WriteLine("==========" + msg + "===================");
   Console.ReadKey();

  #endregion

6.c#编译生成的exe文件不是真正意义上的exe文件,。.net reflector可以反编译出exe中的源码,仅限c#生成的exe,其他语言生成的exe反编译不了。原因就在此。

如果不使用vs开发软件,仅使用记事本,则需要把c#代码,编译成exe文件才可以。

步骤:编写一个.cs的文件 通过csc编译器(csc.exe  在.net framework安装目录下)将.cs文件编译成“伪exe”→“程序集”.(微软中间语言IL).  “运行”exe文件(将“伪exe”文件通过“即时编译”[jit→just in time])→机器码

7. 自动属性

1. public string Name{get;set;} 自动属性,编译器会自动生成对应的字段。可以反编译看出。

2. private string _name;

  public string Name

  {

    get

    {

      return _name;

    }

    set

    {

      this._name=value;//会自动生成一个方法Set_Name(string value),传入的参数就是value,所以这里可以直接使用value。

    }

  }

方法1,2功能一样,最好使用2的方法。因为方法一字段名是编译器随机生成的,可能会重复,发生错误。退吗使用方法2.

8.添加引用与引用命名空间区别

  同一个项目中的不同命名空间中的类引用,要导入命名空间

  不同项目中,要访问其他项目的类,要添加引用,之后再导入该类所在的命名空间。

9.里氏替换原则:需要父类的时候,可以给一个子类对象是可以的。

父类引用指向子类对象,就是里氏替换原则,也就是多态。

10.不打断点调试

光标放到某一行,然后按 ctrl+F10,就启动调试,运行到改行,程序停住。

11.当一个子类继承父类以后,该子类中的所有构造函数在默认情况下,在自己被调用前,都会调用父类中无参的构造函数,如果父类没有无参的构造函数,则会报错。

解决方法:1.父类增加无参的构造函数。

     2. 子类构造函数调用时,手动的调用父类有参的构造函数。如下所示:

public Student(string name,int age,int heigth,string sid):base(name,age,heigth)//与java中的super()类似

{

  this.Sid=sid;

}

12.c#中有五种访问修饰符

  1.private  本类内部访问

  2.protected 本类及子类可以访问

  3.internal 当前程序集内部都可以访问(编译成同一个程序集dll或exe内的所有类都可以访问),注意与命名空间namespace没关系,可以不同的namespace,但必须编译成一个共同的程序集。

  4.protected internal 当前程序集内部或者是该程序集内部某个类的子类可以访问,该子类可以在其他程序集中

  5.public 任何地方都可以访问

 注意:累成员变量当不写修饰符时,默认是private。

与java不同,java是四种访问修饰符,private,protected,public,无(默认) 

13.

原文地址:https://www.cnblogs.com/lxboy2009/p/5808819.html