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类中调用这个函数,但是值没有被改变,如果设置为静态变量就可以,但是不能用静态变量,因为静态变量所有实例化的敌人都是一个行为了
展开
 我来答
百度网友81955c4
2013-01-21
知道答主
回答量:41
采纳率:0%
帮助的人:16.4万
展开全部
你声明对象a2 a=new a2();就用a这个对象访问,值会变为90。
如果你又声明你个对象a2 newa=new a2(); newa访问时textValue的值还是100

a和newa两个对象是不同的,各自拥有各自的资源。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
█╬卍╬█
推荐于2018-05-06 · TA获得超过162个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:165万
展开全部
楼主应该是新手吧 值不可能不改变的
应该是你弄错了对象吧?
A a1,a2;
a1 = new A();
a2 = new A();

你用a1调用OnDamage,a2当然不会改变咯

你把代码贴出来吧,看样帮你看看
追问
好久没用C#了,两年了忘了好多,我写主角攻击敌人,砍中了就调用敌人类里的一个函数减少敌人的血量,同时设置敌人状态为挨打状态,但是设置不了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友97df5c0af
2013-01-14 · TA获得超过568个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:555万
展开全部
你代码上减的是a2类中的值啊,而且你的变量是public,不知道还有谁会在外面修改这个变量的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
再见米老猫
2013-01-14 · TA获得超过174个赞
知道答主
回答量:52
采纳率:0%
帮助的人:20.6万
展开全部
你new这个对象后,不要把它弄丢就好了。即你在调用的地方,吧对象的实例变成全局的,每次调用用这个全局的实例就好啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8dddc73
2013-01-14
知道答主
回答量:16
采纳率:0%
帮助的人:7.2万
展开全部
你写的OnDamage方法返回类型为void~你方法中blood的操作并不会被保留,当然是不会改变blood的值
追问
就算返回float他在当前类里还是没被改变啊
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式