C#怎么把一个类传递到一个函数里进行数值变化。

为什么要这样做?因为有很多个类,但是要进行数值的变换,你总不能一个个手动来吧,所以我想通过函数的一个模板(也可以是其他办法),弄成一个公共的结构,让类里面的数值进行变更,... 为什么要这样做?因为有很多个类,但是要进行数值的变换,你总不能一个个手动来吧,所以我想通过函数的一个模板(也可以是其他办法),弄成一个公共的结构,让类里面的数值进行变更,比如AP=100, 但是需要进行百分百乘除,然后进入函数里就是要做这个的

class play
{
int ap;
int dp;
int sp;
int hp;
}

play wo=new play();
wo.ap=100;
wo.dp=80;
wo.sp=10;
wo.hp=1000;
然后在强化后,需要把这个类的实例化进行更新
于是

void gengxinshuzhi(传递参数)
{
公共类.ap*=1.20; //增强原有类的数值的20%
公共类.dp*=1.10;
公共类.sp*=1.03;
公共类.hp*=1.25;
}

使用
gengxinshuzhi(类)

我在JS通过eval很方便就实现了,
mp是类名的字符串
eval(mp).HP=eval(mp).HP*1.20;
但是在C#就不知道了。
听说有反射,但是不会弄。
展开
 我来答
我零0七
2018-01-23 · 热衷人生的有效性,关注自我
我零0七
采纳数:684 获赞数:11738

向TA提问 私信TA
展开全部

这其实很简单的你创建一个系数的属性,每次给rate赋值后对应的属性也会变化,这样你读取的值就是强化后的值了

很多个类的话,如果属性相同;那你可以使用继承,这样就不用重复定义了

 double ap;
 double dp;
 double sp;
 double hp;
 private double _rate;
 /// <summary>
 /// 属性强化系数
 /// </summary>
 public double Rate
 {
     get { return _rate; }
     set
     {
         if (value != 0)
         {
             ap = ap * value;
             dp = dp * value;
             sp = sp * value;
             hp = hp * value;
             _rate = value;
         }
     }
 }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式