- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
NumberFormatInfo nfi = new NumberFormatInfo();
nfi.CurrencySymbol = "$";
var result1 = decimal.Parse("$123456", NumberStyles.Any, nfi).Dump(); // this works well
var result2 = Convert.ChangeType("$123456", typeof(decimal), nfi); // this doesn't work
我需要 Convert.ChangeType() 来接受货币,这可能吗?尝试设置 NumberFormatInfo 但看起来它忽略了货币值。
最佳答案
Convert
是一个静态类,ChangeType()
是一个静态方法,因此您不能覆盖它们。
即使这不完全是您所要求的,但是,您也可以创建自己的类,更改您希望它适用于十进制(以及任何其他)的方式,并使用 Convert.ChangeType()
作为其他类型的默认值:
public static class MyConvert
{
public static object? ChangeType(object? value, Type conversionType, IFormatProvider provider)
{
if (conversionType == typeof(decimal))
return decimal.Parse(value.ToString(), NumberStyles.Any, provider);
else
return Convert.ChangeType(value, conversionType, provider);
}
}
现在以下代码将按您的预期工作:
var result2 = MyConvert.ChangeType("$123456", typeof(decimal), nfi);
关于c# - 是否可以使 Convert.ChangeType() 接受货币?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59359392/
我的数据可能非常大,可能是 xmlstring、数据集、数据表、数据行集合。此数据将与其类型一起传递给泛型方法。 void GenericMethod(object data, Type t) {
我发现这篇文章来自 @hugoware关于解析值:http://hugoware.net/blog/more-control-when-parsing-values .我在一个项目中重新使用了他的代码
我有一个有效的自定义消息协议(protocol)的反序列化类。此类使用反射来检查类的属性和协议(protocol)映射的属性。这工作正常,除非值是无符号整数(32 或 64)并且正在转换为整数(32
我想根据另一个变量的类型转换一个变量。 这样做的原因是我有一个扩展方法,它将对 T 应用计算,前提是 T 是 double 、 float 或小数(我在方法开头测试正确的类型)。 所以无论如何,使用以
我想知道 Object Convert.ChangeType( Object object, Type type) 内部发生了什么当 object 的类型匹配 type .它只是捷径并返回object
在我的应用程序中,我经常调用 Convert.ChangeType 以将值转换为动态加载的类型。 但是,在使用 ANTS 进行分析后,我发现此 Convert.ChangeType 似乎需要花费大量时
public static T Convert(String value) { return (T)Convert.ChangeType(value, typeof(T)); }
我从数据库中得到了一个 Int16 值,需要将其转换为枚举类型。不幸的是,这是在代码层中完成的,除了可以通过反射收集的内容外,该代码层对对象知之甚少。 因此,它最终调用 Convert.ChangeT
我想将字符串转换为对象属性值,我将其名称作为字符串。我正在尝试这样做: string modelProperty = "Some Property Name"; string value = "Som
Convert 自 .NET 1.0 起就存在类。 IConvertible 从那时起,界面也已经存在。 Convert.ChangeType 方法仅适用于实现 IConvertible 的类型的对象
给定类(class): public class Foo { public string Name { get; set; } } 是否可以通过 Convert.ChangeType 从字符串
我是 Flutter/Dart 的新手,我正在尝试构建一个具有占位符加载的可重复使用的无限滚动条。类(class)如下: import 'dart:async'; import 'package:fl
NumberFormatInfo nfi = new NumberFormatInfo(); nfi.CurrencySymbol = "$"; var result1 = decimal.Parse
我想制作一个通用的字符串到数字转换器,并将其作为字符串扩展提供,因此我编写了以下代码: public static bool TryParse( this string text, out T res
我有一个代表通用过滤器表达式的类 public class SimpleFilter : BaseRuleExpression { public string field { get; set
此代码将时区添加到 DateTime,在实际场景中,此代码位于一个通用函数内,用于将字符串转换为各种类型。所以我需要一个适用于所有类型的通用代码: DateTime d = DateTime.MinV
遇到以下问题。我有一个属性定义了数据库表中键的名称。使用反射,我用该属性初始化属性或字段的值。一切都很好,直到我将属性定义为数组: [ConfigurationKey("TestArray")] pu
我正在使用 Convert.ChangeType() 将 Object(我从 DataBase 获取)转换为通用类型 T。代码如下所示: T element = (T)Convert.ChangeTy
我正在使用 .Net Connector 6.3.6 处理 MySQL,并在 VS 2010 上创建实体模型。我打算编写一个通用方法,将 EntityObject 添加到其对应的表中。这是它的样子:
这是 this question 的后续行动关于用反射转换值。将某种类型的对象转换为另一种类型可以像这样完成: object convertedValue = Convert.ChangeType(v
我是一名优秀的程序员,十分优秀!