forked from BeyondDimension/SteamTools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCurrencyCode.cs
More file actions
45 lines (40 loc) · 1.17 KB
/
CurrencyCode.cs
File metadata and controls
45 lines (40 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System.Application;
using System.Application.Columns;
using System.Globalization;
using System.Linq;
namespace System.Application
{
/// <summary>
/// 货币类型
/// </summary>
public enum CurrencyCode : byte
{
/// <summary>
/// ¥ 人民币
/// </summary>
CNY = 1,
/// <summary>
/// $ 美元
/// </summary>
USD = 2,
}
}
namespace System.Application.Columns
{
public interface ICurrencyCodeString
{
string CurrencyCode { get; }
}
}
// ReSharper disable once CheckNamespace
namespace System
{
public static partial class CurrencyCodeEnumExtensions
{
public static CultureInfo? GetCultureInfo(this CurrencyCode eCurrencyCode)
=> CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.FirstOrDefault(culture => new RegionInfo(culture.LCID).ISOCurrencySymbol == eCurrencyCode.ToString());
public static CurrencyCode GetCurrencyCode(this ICurrencyCodeString @interface, CurrencyCode @default = CurrencyCode.CNY)
=> Enum.TryParse(@interface.CurrencyCode, true, out CurrencyCode currencyCode) ? currencyCode : @default;
}
}