C# 引用类型公共变量的影响
public int[] a =new int[2];
private void button1_Click(object sender, EventArgs e)
{
bing(a);
}
private void bing(int[] aa)
{
aa[0]=3;
aa[1]=3;
}
以上代码 在 button1被点击时 触发bing方法 公共变量 是 a 是个int数组 引用类型,
当在 bing方法里公共变量a以参数的方式传进来,在bing方法中修改,aa数组 会同步到 全局变量 a上 ,使得公共变量a也会被修改
public int[] a =new int[2];
private void button1_Click(object sender, EventArgs e)
{
bing(a);
}
private void bing(int[] aa)
{
aa=new int[] {3,3};
}
同样的代码 在bing方法中 由修改变成赋值,这里bing里的aa int数组 改变将不会同步到 a上
通过分析,在全局变量a传入bing方法时 传递的是地址 给aa ,如果aa被修改 相当于修改了 全局变量 a 数据就会同步
如果直接给aa赋值 相当于重新分配了 地址 这样修改就与公共变量a无关了 数据自然不会同步
C# 引用类型公共变量的影响的更多相关文章
- C#-WebForm-★内置对象简介★Request-获取请求对象、Response相应请求对象、Session全局变量(私有)、Cookie全局变量(私有)、Application全局公共变量、ViewState
内置对象: 1.Request - 获取请求对象 用法:接收传值 protected void Page_Load(object sender, EventArgs e) { TextBox1.Tex ...
- ES5提取公共变量
在ES5中,请求地址前缀等需要作为公共变量提出. 则需在common.js写上 Object.defineProperty(window,'base',{ value:"http://xx. ...
- C#学习笔记-数据的传递(公共变量)以及Dictionary
看的代码越多,写的代码越多,就越是享受这些字符,终于渐渐懂得了那种传闻中的成就感,特别是自己从看不懂然后一步一步学,一个代码一个代码地敲,最后哪怕只是完成了一个小功能,也都是特别自豪的!这种自豪不用告 ...
- C++的引用类型的变量到底占不占用内存空间?
——by karottc 分析一下 C++ 里面的引用类型(例如: int &r = a; )中的 r 变量是否占用内存空间呢?是否和 int *p = &a; 中的 p 变量 ...
- 如何在Exe和BPL插件中实现公共变量共享及窗口溶入技术Demo源码
如何在Exe和BPL插件中实现公共变量共享及窗口溶入技术Demo源码 1.Delphi编译方式介绍: 当我们在开发一个常规应用程序时,Delphi可以让我们用两种方式使用VCL,一种是把VCL中的申明 ...
- 没做过编译器就是被人欺——从一道变态的i++题猜编译器的行为(表达式从左往右扫描,同一变量相互影响)
首先不要被人蒙了,如果是这样,根本编译不过: int i=1; int b=i+++++i; printf("%d %d\n", b ,i); Mingw报错:error: lva ...
- 随机跳转页面之使用VBA公共变量
p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...
- n个并发进程共用一个公共变量Q,写出用信号灯实现n个进程互斥的程序描述,给出信号灯值得取值范围,并说明每个取值范围的物理意义。
答: var mutex: semaphore:=1; begin cobegin process i : begin // i = 1,2,……,n repeat P(mutex); 对公共变量 ...
- 如何在vue中全局引入stylus文件的公共变量
新建 一个公共的stylus公共文件添加公共变量,如下: 修改下图圈出的文件: 具体的修改如下: // generate loader string to be used with extract t ...
随机推荐
- 【js】关于闭包、let、var的一个考题
题目: html: body中有2个div 遍历,给每个div添加点击事件,输出值. js: var声明: 效果: 点击每个div后都打印2. 用户点击前,for循环就已经执行完了,是2,onclic ...
- Windows SubSystem for Linux
Summary of Windows SubSystem for Linux Install Ubuntu Run PowerShell as administrator and input: Ena ...
- [C++ Primer Plus] 第3章、处理数据(二)课后习题
1 . 编写一个小程序,要求用户使用一个整数输出自己的身高(单位为厘米),然后将身高转换为米和厘米.该程序使用下划线字符来指示输入位置.另外,使用一个 const 符号常量来表示转换因子. #incl ...
- 网站基础html javascript jquery
第二章HTML HBuilder的使用 边改边看模式 chrome浏览器看. HTML的基本格式 超文本标记语言 HyperText Markup Language HyperText 超文本 Mar ...
- Latex: 参考文献双栏对齐
参考: How to level columns in bibliography? Latex: 参考文献双栏对齐 需要实现的效果: 方法1: 在开头引用balance: \usepackage{ba ...
- 一: DRF web应用框架基础,及序列化器的使用
---恢复内容开始--- 一: web 应用模式(有两种) 1: 前后端不分离(前端从后端直接获取数据) 2: 前后端分离 二: api 接口 原因一: 为了在团队内部形成共识.防止个人习惯差异引起的 ...
- 整理this笔记
1.在浏览器全局环境中this指向的是Window console.log(this); //Window 2.在事件处理函数中的this,这个事件是由谁触发,this就指向谁 3.直接执行一个函数的 ...
- Asp.net core 学习笔记 (library)
refer : https://docs.microsoft.com/en-us/dotnet/core/tutorials/library-with-visual-studio https://do ...
- SQLLITE HELPER
using System;using System.Data.SQLite; namespace SQLiteSamples{ class Program { //数据库连接 ...
- React文档(九)list和key
首先,我们回顾一下在js里如何转换数组. 给出下面的代码,我们使用map()函数来获取一个数组的numbers然后将值变成两倍大.我们分配新数组由map()返回: const numbers = [1 ...