没有好的办法保护数组类型参数不被修改,所以尽量避免使用数组类型作为方法参数,除非用到可选参数时候。
三、理解上面的东西需要区分清楚一下概念的区别
1、值类型和引用类型的区别
2、值传递和引用传递(ref和out)的区别
3、传递引用类型参数和引用传递(ref和out)引用类型参数的区别 [这一点最容易混淆]
区别在于使用该参数过程中为该引用新建了对象的情况下,前者不影响原始值,后者影响原始值,示例:
void FunA(MyClass a)
{
a=new MyClass("A");
}
void FunB(ref MyClass a)
{
a=new MyClass("B");
}
void Test()
{
MyClass a=new MyClass("A");
FunA(a);
Print(a); //a还是原始的对象 TEST
FunB(ref a);
Print(a); //a变为新对象 B
}
记住一条原则:
值类型传递的是值的副本,引用类型传递的是对象引用,所以值参数的修改不影响原始值,引用类型的修改影响原始值;值传递的参数构建不影响原始值,引用传递(ref和out)影响原始值。
以上内容是小编给大家介绍的C#中的数组作为参数传递所引发的问题 ,希望对大家有所帮助!
注:相关教程知识阅读请移步到c#教程频道。










