C#中,怎么不定义静态变量,在另一个类中调用,改变这个变量的值
例如在A类中,定义了publicintblood=100;publicintstate;publicvoidOnDamage(intHurt){state=100;blo...
例如在A类中,定义了
public int blood = 100;
public int state;
public void OnDamage(int Hurt)
{
state = 100;
blood = blood - Hurt;
}
然后再B类中调用这个函数,但是值没有被改变,如果设置为静态变量就可以,但是不能用静态变量,因为静态变量所有实例化的敌人都是一个行为了 展开
public int blood = 100;
public int state;
public void OnDamage(int Hurt)
{
state = 100;
blood = blood - Hurt;
}
然后再B类中调用这个函数,但是值没有被改变,如果设置为静态变量就可以,但是不能用静态变量,因为静态变量所有实例化的敌人都是一个行为了 展开
6个回答
展开全部
你声明对象a2 a=new a2();就用a这个对象访问,值会变为90。
如果你又声明你个对象a2 newa=new a2(); newa访问时textValue的值还是100
a和newa两个对象是不同的,各自拥有各自的资源。
如果你又声明你个对象a2 newa=new a2(); newa访问时textValue的值还是100
a和newa两个对象是不同的,各自拥有各自的资源。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主应该是新手吧 值不可能不改变的
应该是你弄错了对象吧?
A a1,a2;
a1 = new A();
a2 = new A();
你用a1调用OnDamage,a2当然不会改变咯
你把代码贴出来吧,看样帮你看看
应该是你弄错了对象吧?
A a1,a2;
a1 = new A();
a2 = new A();
你用a1调用OnDamage,a2当然不会改变咯
你把代码贴出来吧,看样帮你看看
追问
好久没用C#了,两年了忘了好多,我写主角攻击敌人,砍中了就调用敌人类里的一个函数减少敌人的血量,同时设置敌人状态为挨打状态,但是设置不了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你代码上减的是a2类中的值啊,而且你的变量是public,不知道还有谁会在外面修改这个变量的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你new这个对象后,不要把它弄丢就好了。即你在调用的地方,吧对象的实例变成全局的,每次调用用这个全局的实例就好啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你写的OnDamage方法返回类型为void~你方法中blood的操作并不会被保留,当然是不会改变blood的值
追问
就算返回float他在当前类里还是没被改变啊
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询