在C#中,ref的意思是按引用传递.可以参考C++: int a = 10, b = 20; void swap(int x, int y) { int temp = x; x = y; y = temp; } 如果简单的调用这个swap,比如:swap(a, b),那么你根本没办法交换这两个变量的值,因为x和y都是形参,在swap返回的时候,x和y都被释放了.但如果是这样定义swap: void swap (int& x, int& y) { int temp = x; x = y; y…
我们可能见到下面的代码 public static void StringBuilderNoRef(StringBuilder s) { s.Append(" World"); s = new StringBuilder("hi"); } public static void StringBuilderRef(ref StringBuilder s) { s.Append(" World"); s = new StringBuil…
在上一篇文章中,说了下foreach的用法,但是还是比较复杂的,要实现接口才能进行遍历,有没有简单些的方法呢?答案是肯定的.且看下面. yield关键字的用法: 1.为当前类型添加一个任意方法,但是要求该方法的返回值类型必须是IEnumerable:<代码1-1> class Person { public string Name { get; set; } public int Age { get; set; } public string[] _Name = new string[] {…
this 关键字的用法 this 在类中就是代表当前对象,可以通过 this 关键字完成当前 对象的成员属性.成员方法和构造方法的调用. 那么何时用 this? 当在定义类中的方法时,如果需要调用该类对象,就可以用 this 来表示这个对象.也就是说,但凡在本类功能内部使用到了本类对象, 都用 this 表示.至于代表哪个对象,就看其所在功能被哪个对象调 用,这样就知道谁在参与运算. 例: 运行结果…