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#就不知道了。
听说有反射,但是不会弄。 展开
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#就不知道了。
听说有反射,但是不会弄。 展开
1个回答
展开全部
这其实很简单的你创建一个系数的属性,每次给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;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询