加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在单个变量中存储比率并在C#中读回

发布时间:2020-12-15 20:05:18 所属栏目:百科 来源:网络整理
导读:假设我有一个系统,必须存储有多少人在战斗机A上投票,在战斗机B上有多少人投票. 比方说,比例是200:1 如何将该值存储在单个变量中,而不是将两个值(A上的选民数和B上的选民数)存储在两个变量中. 你会怎么做? 解决方法 从问题措辞的方式来看,这可能不是您正在
假设我有一个系统,必须存储有多少人在战斗机A上投票,在战斗机B上有多少人投票.

比方说,比例是200:1

如何将该值存储在单个变量中,而不是将两个值(A上的选民数和B上的选民数)存储在两个变量中.

你会怎么做?

解决方法

从问题措辞的方式来看,这可能不是您正在寻找的答案,但最简单的方法是使用结构:

struct Ratio
{
    public Ratio(int a,int b)
    {
        this.a = a;
        this.b = b;
    }

    public int a = 1;
    public int b = 1;
}

你几乎肯定会想要使用属性而不是字段,你可能也想要重载==和!=,类似于:

public static bool operator ==(Ratio x,Ratio y)
{
    if (x.b == 0 || y.b == 0)
        return x.a == y.a;
    // There is some debate on the most efficient / accurate way of doing the following
    // (see the comments),however you get the idea! :-)
    return (x.a * y.b) == (x.b / y.a);
}

public static bool operator !=(Ratio x,Ratio y)
{
    return !(x == y);
}

public override string ToString()
{
    return string.Format("{0}:{1}",this.a,this.b);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读