diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2016-11-23 19:09:09 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2016-11-23 19:09:09 +0900 |
commit | 4b4aad7217d3292650e77eec2cf4c198ea9c3b4b (patch) | |
tree | 98110734c91668dfdbb126fcc0e15ddbd93738ca /src/mscorlib/src/System/Currency.cs | |
parent | fa45f57ed55137c75ac870356a1b8f76c84b229c (diff) | |
download | coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.tar.gz coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.tar.bz2 coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.zip |
Imported Upstream version 1.1.0upstream/1.1.0
Diffstat (limited to 'src/mscorlib/src/System/Currency.cs')
-rw-r--r-- | src/mscorlib/src/System/Currency.cs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/Currency.cs b/src/mscorlib/src/System/Currency.cs new file mode 100644 index 0000000000..d29ad2452c --- /dev/null +++ b/src/mscorlib/src/System/Currency.cs @@ -0,0 +1,61 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System { + + using System; + using System.Globalization; + using System.Runtime.CompilerServices; + using System.Runtime.Versioning; + + [Serializable] + internal struct Currency + { + internal long m_value; + + // Constructs a Currency from a Decimal value. + // + public Currency(Decimal value) { + m_value = Decimal.ToCurrency(value).m_value; + } + + // Constructs a Currency from a long value without scaling. The + // ignored parameter exists only to distinguish this constructor + // from the constructor that takes a long. Used only in the System + // package, especially in Variant. + internal Currency(long value, int ignored) { + m_value = value; + } + + // Creates a Currency from an OLE Automation Currency. This method + // applies no scaling to the Currency value, essentially doing a bitwise + // copy. + // + public static Currency FromOACurrency(long cy){ + return new Currency(cy, 0); + } + + //Creates an OLE Automation Currency from a Currency instance. This + // method applies no scaling to the Currency value, essentially doing + // a bitwise copy. + // + public long ToOACurrency() { + return m_value; + } + + // Converts a Currency to a Decimal. + // + [System.Security.SecuritySafeCritical] // auto-generated + public static Decimal ToDecimal(Currency c) + { + Decimal result = new Decimal (); + FCallToDecimal (ref result, c); + return result; + } + + [System.Security.SecurityCritical] // auto-generated + [MethodImplAttribute(MethodImplOptions.InternalCall)] + private static extern void FCallToDecimal(ref Decimal result,Currency c); + } +} |