1.默认情况下,C#假定所有的方法参数传递都是传值的. 如下面的方法: public static void Main(string[] args) { int val = 5; //调用AddValue方法,aVal会重新拷贝一份val的值(即aVal为val的一个实例副本),方法内部的操作并不会改变val的值. AddValue(val); //val值还是5,并没有加1 Console.WriteLine(val); Console.ReadLine(); } public static…
对于C#中这两个关键字的用法,常常混淆,有点不清楚,今天又一次看到.遂把它们都记录下来,希望能有所用.这些都是他人写的,我只是搬过来一次,加深印象. 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace dazilianxi.wenjian { public class MoTes:IEnumerable<SanWei> { private reado…
两者都是按地址传递的,使用后都将改变原来参数的数值. class Program { static void Main(string[] args) { int num = 1; Method(ref num); Console.WriteLine(num); Console.ReadKey(); } public static void Method(ref int num) { num += 5; } } class Program { static void Main(string[] a…
前言 一.基础 Ref: Build a REST API with Laravel API resources Goto: [Node.js] 08 - Web Server and REST API 二.资源 Goto: Laravel 5.4 From Scratch[原讲座] Goto: https://laravel.com/docs/5.4 Ref: Laravel China 社区 三.快捷键 [1] 自动生成 html 基本的 head, body 代码模板. [2] exten…
Annotation 0. Annotation Tricks http://developer.android.com/reference/java/lang/annotation/Annotation.html 0.1 Annotation 接口 "Defines the interface implemented by all annotations. Note that the interface itself is not an annotation, and neither is a…
引例: 先看这个源码,函数传递后由于传递的是副本所以真正的值并没有改变. 源码如下: using System; using System.Collections.Generic; using System.Text; namespace refout参数学习 { class Program { static void Main(string[] args) { ; IncAge(age); Console.WriteLine(age);//打印结果还是20 Console.ReadKey();…
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { string outString = "This is the outString value"; Console.WriteLine(outString…
在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…
1.ref传进去的参数必须进行初始化,out不必int i;SomeMethod( ref i );//语法错误SomeMethod( out i );//通过 2.ref传进去的参数在函数内部可以直接使用,而out不可:public void SomeMethod(ref int i){ int j=i;//通过 //...}public void SomeMethod(out int i){ int j=i;//语法错误 } 3.ref传进去的参数在函数内部可以不被修改,但out必须在离开函…
一.按值传递参数 值参数是通过将实参的值复制到形参,来实现按值传递到方法,也就是我们通常说的按值传递. 方法被调用时,CLR做如下操作: 1.在托管栈中为形参分配空间: 2.将实参的值复制到形参. 这个太常用了,按值传递参数,是复制一份,因此不影响原来参数的值. public class Program { static void Main(string[] args) { ; ; int k = Plus(i,j); Console.WriteLine(i); //输出 1 Console.W…