相关疑难解决方法(0)

在运行时更改内部表示

更新主要问题仍然是示例下的问题,但我想它归结为:

**如果你有一种类型,其中99%的值可以用一种快速,强大的类型表示,而只有1%用非常重的类型表示,(比如int与BigInteger)如何表示?**

一所学校我们学到了很多关于内部表征的知识,但从未在运行时如何改变它.我的意思是:假设你有一个表示小数的类,但是你使用一个整数来表示它是内部的,直到你实际上需要一个比整数更大的值,而只是改变表示...

我之前从未想过这个,当我想到它时,我认为这样做永远不会奏效,因为所有的检查都会杀掉它.但是我只是做了一个测试,因为我对自己的好处太好奇了,并且确实存在更改表示更多perormant的情况:给定这个接口:

interface INumber
    {
        void add1000();
        void SetValue(decimal d);
        decimal GetValue();                     
    } 
Run Code Online (Sandbox Code Playgroud)

我找到了两种实现的,后者是更强大了很多情况,包括这一次,我组成,以吸引对此事的很多想法我可以(不是代表,它的社区)

    1. Representation by only a decimal

        public class Number1:INumber
        {

            private decimal d { get; set; }


            public void add1000()
            {
                d += 1000;
            }



            public decimal GetValue()
            {
                return d;
            }



            public void SetValue(decimal d)
            {
                this.d = d;
            }

        }


2. Representation by a decimal and an int

public class Number2:INumber
    {
        private bool usedecimal; 
        private int i;
        private decimal …
Run Code Online (Sandbox Code Playgroud)

c# representation

1
推荐指数
1
解决办法
300
查看次数

标签 统计

c# ×1

representation ×1