有没有理由C#System.Decimal记得它输入的尾随零的数量?请参阅以下示例:
public void DoSomething()
{
decimal dec1 = 0.5M;
decimal dec2 = 0.50M;
Console.WriteLine(dec1); //Output: 0.5
Console.WriteLine(dec2); //Output: 0.50
Console.WriteLine(dec1 == dec2); //Output: True
}
Run Code Online (Sandbox Code Playgroud)
小数被归类为相等,但是dec2会记住它是以额外的零输入的.这是什么原因/目的?
我最近在看运行时序列化并遇到了ISerializationSurrogate界面.SetObject然而,我对它的方法感到困惑.
签名是:
object SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector)
和帮助信息是:
摘要:
使用System.Runtime.Serialization.SerializationInfo中的信息填充对象.
参数:
obj:要填充的对象.
info:填充对象的信息.
context:反序列化对象的源.
selector:代理选择器,其中搜索兼容的代理开始.
返回:
填充的反序列化对象.
如果obj是要填充的对象,为什么会返回The populated deserialized object?在MSDN的一个例子中,他们填充obj和return null.
我一直在研究一个需要使用伪随机数生成的开发问题,以允许为给定的种子生成相同的随机数集.我目前一直在寻找使用long random(void)和void srandom(unsigned seed)为此(手册页),目前这些是在Mac应用程序,iOS应用程序和iOS应用程序(64位)中生成相同的随机数集,这是我所希望的.iOS测试只在模拟器中进行,所以我不知道这是否会影响结果.
我主要担心的是,这个算法可能会在某些时候发生变化,使我们正在开发的应用程序对旧数据有效无用.这些算法在未来设备上改变/不同的可能性有多大?