图片-C# 变量赋值与改变问题

问题描述

C# 变量赋值与改变问题



如上面的图片所示
将一个全局变量players[n]赋值给局部变量player
然后对局部变量play进行设置 赋值
然后发现全局变量players[n]也跟着改变了
这是为什么?

解决方案

这还用说吗,最基本的,你没有搞清楚引用类型的赋值,先上图

引用类型变量的赋值: 引用类型变量中保存的是“指向实际数据的引用指针”。在进行赋值操作的时候,它和值类型一样,也是先有一个复制的操作,不过它复制的不是实际的数据,而是引用(真实数据的内存地址)。

所以引用类型的变量在赋值的时候,赋给另一变量的实际上是内存地址。这样赋值完成后,2个引用变量中保存的是同一引用,他们的指向完全一样。

解决方案二:

c# winform 关于给静态全局变量赋值的问题
char型变量赋值问题

解决方案三:

         public BOOLEAN SecondLevel(int noPlayer, bool bID)
        {
            Player player = players[noPlayer];

            if (bID)
            {
                Random rand = new Random();

                if (CheckID(player).Count == 0)
                    return BOOLEAN.FALSE;

                switch (CheckID(player).Count)
                {
                    case 1:
                        player.IDSet(CheckID(player)[0]); break;
                    default:
                        {
                            int team = rand.Next(noPlayer);
                            player.IDSet(GasesAndChooseType(players[team], CheckID(player)));
                        } break;
                }

                player.Hand.Remove(player.Identity_Card.Key);

                return BOOLEAN.FULL;
            }
            else
            {
                return LifeSkillSetAI(player);
            }
        }

解决方案四:

你传递操作是一个类对象 吧?这涉及到值传递和引用传递的问题;

时间: 2024-10-30 11:02:29

图片-C# 变量赋值与改变问题的相关文章

自定义-flex4 监听变量value的改变

问题描述 flex4 监听变量value的改变 我自定义了一个组件里面包含一个 我怎么通过传过来的变量值来达到切换图片的功能 求科普

c c++ string-c++ string类型的变量赋值是浅拷贝还是深拷贝?

问题描述 c++ string类型的变量赋值是浅拷贝还是深拷贝? string str1 = "123453"; string str2 = str1; str1和str2的内存地址是相同的吗?str2中某一字符值的改变会影响到str1吗? 解决方案 不同.string 有自己的构造函数来分配空间. 所以不会影响 解决方案二: 浅拷贝还是深拷贝这是对于指针来说的,基本变量是没有这一说的,都是直接分配一个新的内存给它. 所以不会有影响的 解决方案三: string类是stl类,已经封装好

jQuery ajax时间差导致的变量赋值问题分析_jquery

本文实例分析了jQuery ajax时间差导致的变量赋值问题.分享给大家供大家参考,具体如下: ajax异步请求,在各种特效方面,做出了不少的贡献,有了它让用户体验更好.下面说一下曾今遇到过的一个问题,今天又遇到了,又花了我一点时间,小问题,但是特别容易忽视,并且不容易想到是什么原因产生的.废话不多说,举个例子大家就明白了. 一.准备测试文件test.php和test.html 1. test.php <?php echo "1"; ?> 2. test.html <

c语言-结构体对象使用malloc初始化时候有办法直接对结构体变量赋值吗

问题描述 结构体对象使用malloc初始化时候有办法直接对结构体变量赋值吗 结构体对象使用malloc初始化时候有办法直接对结构体变量赋值吗? 解决方案 如果是C++的结构体,可以在构造函数中赋值,比如 struct data { int a; data() { a = 1; } }; 解决方案二: 你动态分配了结构体变量无非是,后面的工作需要对它进行赋值,以及各种运算. 那么,你所说malloc初始化直接赋值.是指什么样的情况的,难道是像c++中的 (构造函数).事实上c++的构造函数在使用前

Oracle 过程中变量赋值

create or replace function get_sal1(id employees.employee_id%type) return number is sal employees.salary%type; begin sal := 0; select salary into sal from employees where employee_id = id; return sal; end; create or replace function get_sal1(id emplo

matlab-为什么MATLAB中通过表达式对某变量赋值,但是该变量值不发生变化,还是保持原先的值

问题描述 为什么MATLAB中通过表达式对某变量赋值,但是该变量值不发生变化,还是保持原先的值 为什么MATLAB中通过表达式对某变量赋值,但是该变量值不发生变化,还是保持原先的值 解决方案 看看是不是有别的地方又赋值了,或者变量名搞错了. 解决方案二: 调试过程中可以很明显的看到,赋值符号右边是对的,但是就是不能输出到左边变量 解决方案三: 该变量是不是全局变量呢

求解决-c语言数据变量赋值类型

问题描述 c语言数据变量赋值类型 假定有一个程序,它把一个long整型变量赋值给一个short整型变量.当你编译程序的时候会发生什么情况?当你运行程序时会发生什么情况?你认为其他编译器的结果是否也是如此? 解决方案 long整型变量赋值给一个short整型 会报错,类型转换出错,long转short大范围转小范围错误 解决方案二: C语言是一种简陋而充满陷阱的语言,它需要程序员格外小心,而不是依赖完备的运行时检查和编译检查. 其它编译器,如果是C编译器,大多如此.当然现代的C++编译器,比如VC

c++-Xcode 中将jpg格式的图片写到本地会改变图片的格式吗??

问题描述 Xcode 中将jpg格式的图片写到本地会改变图片的格式吗?? ,, 我把jig, 写入到本地之后, 好像格式发生了改变, 然后我用c++去读取, 就出现了问题,说我读的不是jpg文件 有大神遇见过没?? 解决方案 正常的情况下,应该不会.读写文件,应该原样保持不变. 如果变了,说明你的程序在读写文件的数据时有问题. 解决方案二: 贴出你写文件的代码,看看是不是文件没有实际写入,或者写得不全,或者当成文本文件写入了. 解决方案三: 最好用二进制方式写文件 这样就不会破坏文件格式 解决方

c#窗体背景图片-C#设置窗体背景图片,并让背景图片每隔五秒改变一次

问题描述 C#设置窗体背景图片,并让背景图片每隔五秒改变一次 怎么用C#设置Windows窗体的背景图片,并且让背景图片隔五秒变一次 解决方案 在你的窗体不属于任何方法的地方写: private int im = 0; 新建一个ImageList控件,添加4个图片. 新建一个定时器,设置interval=5000,enabled=true在tick里面写: this.BackgroundImage = ImageList1.Images[im++ % 4];