问题标签 [typeconverter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#:这是如何工作的:Unit myUnit = 5;
我刚刚注意到您可以在 C# 中执行此操作:
而不必这样做:
有谁知道我如何用自己的结构来实现这一点?我查看了带有反射器的 Unit 结构并注意到正在使用 TypeConverter 属性,但是在为我的结构创建自定义 TypeConverter 之后,我仍然无法让编译器允许这种方便的语法。
c# - 将 int 列表作为参数传递给 Web 用户控件
我想将一个 int 列表(List)作为声明性属性传递给 Web 用户控件,如下所示:
我创建了一个 TypeConverter 来做到这一点:
然后将属性添加到我的属性中:
但我在运行时收到此错误:
Unable to generate code for a value of type 'System.Collections.Generic.List'1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'. This error occurred while trying to generate the property value for ModuleIds.
我的问题与此处找到的问题类似,但该解决方案并未解决我的问题:
更新:我找到了一个解决第一个问题的页面。我更新了上面的代码以显示我的修复。添加的代码是CanConvertTo
andConvertTo
方法。现在我得到一个不同的错误。:
Object reference not set to an instance of an object.
此错误似乎是由ConvertTo
方法中的某些内容间接引起的。
c# - 转换为 int16、int32、int64 - 你怎么知道该选择哪一个?
我经常必须转换一个检索到的值(通常作为一个字符串) - 然后将它转换为一个 int。但是在 C# (.Net) 中,您必须选择 int16、int32 或 int64 - 当您不知道检索到的数字有多大时,您怎么知道该选择哪一个?
.net - 如何在 Windows 窗体设置文件中存储枚举值?
我正在使用 Windows 窗体和 VS2008。我想在我的应用程序的设置文件中存储一个枚举值。
VS2008 中的设置编辑器只给了我一组有限的类型。令人惊讶的是,枚举似乎不是自动支持的这些类型之一 - 我是否正确理解这一点?
通过阅读该主题,似乎我可能需要编写一个 TypeConverter 类,以使我的枚举能够转换为字符串,反之亦然。我已经为我的枚举实现了这个,并将 TypeConverter 属性添加到我的枚举中,以指示要用于该枚举的转换器类。
但是,当我尝试在我的设置文件(在“选择类型”)对话框中指定它时,它只是说我的类型没有定义,所以我有点卡住了。
谁能向我解释如何将枚举存储在 Windows 窗体应用程序的设置文件中?这似乎是一个非常简单(并且通常需要)的功能,我很惊讶它还没有得到支持,而且我似乎必须做很多工作才能让它工作(而且只有一个枚举!)。
因此,我想我一定错过了一些东西,而且实际上真的很容易......
假设我的枚举如下所示:
...如何将此枚举中的值存储在我的设置文件中?(当然要检索它)。
(显然我可以只存储一个字符串或整数并自己解释,但这看起来很笨拙,我希望 Windows 窗体能够更干净地处理这类事情。)
.net - 隐式运算符和 TypeConverters 是否等效?
在我看来,实现隐式运算符与 TypeConverter 相比非常容易,因此我假设它们不等效,因为 TypeConverters 在框架中很流行(请参阅任何扩展 FrameworkElement 的内容)。
但为什么?创建 string->object 和 object->string 隐式运算符并利用序列化中的那些(XML 和 XAML)不是更容易吗?
是雅格尼吗?单一责任?因为您不能在接口中指定运算符重载?
c# - 通用转换功能似乎不适用于 Guid
我有以下代码:
的类型result.CurrentValue
是字符串。我希望能够将其转换为 Guid,但我不断收到错误消息:
从 System.String 到 System.Guid 的无效转换
这与原始数据类型完美配合。
有什么方法可以使这项工作适用于非原始数据类型?
datetime - 如何使用 TypeConverters 将 System.Datetime 转换为自定义类型
出于某种原因,我需要将 aDateTime
转换/转换为许多自定义对象之一
事实证明,以一种很好的通用方式很难做到这一点。
我正在考虑在 object 上实现扩展方法或扩展DateTimeConverter
.
但是,处理这个问题的通用方法是什么,我有一个对象和一个目标类型,目前我正在使用System.ConvertTo(..)
,但这显然是有限的,因为它只支持转换为 .NET 类型并且不能扩展。
有任何想法吗?
c# - 扩展一个 TypeConverter
DateTimeConverter 类提供 DateTime 和字符串之间的转换。我还想支持 DateTime 和 double 之间的转换。
根据 MSDN,我可以扩展 DateTimeConverter 类来执行此操作 - 请参阅MSDN DateTimeConverter
我创建了一个继承自 DateTimeConverter 并为 CanConvertTo、CanConvertFrom 等提供适当覆盖的类。
当调用以下代码时,如何确保框架使用我的 DateTime 转换器 (DateTimeConverterEx) 而不是 BCL (DateTimeConverter) 中提供的转换器?
谢谢。
c# - 如何将自定义类型数据绑定到 TextBox.Text?
我有一个自定义的 c# 类型,比如(只是一个例子):
我希望它数据绑定到 TextBox.Text:
本质上,我需要为我的自定义值类型转换为字符串和从字符串转换。在文本框中,我想要“x, y, z”之类的内容,可以对其进行编辑以更新矢量类型。我假设我可以通过添加TypeConverter
派生类来做到这一点:
并将其与我的结构相关联:
这似乎完成了一半的战斗。我可以看到MyVectorConverter
被召唤,但有些不对劲。调用它看它是否知道如何转换为字符串,然后调用它转换为字符串。但是,永远不会查询它是否可以转换 FROM 字符串,也不会实际进行转换。此外,在文本框中进行编辑后,旧值立即被替换(另一个 CanConvertTo 和 ConvertTo 序列,恢复旧值)。最终结果是文本框中新键入的条目在应用后立即恢复。
我觉得好像只是缺少一些简单的东西。有没有?这整个项目/方法注定要失败吗?还有其他人尝试这种疯狂吗?如何将自定义的多部分类型双向绑定到基于字符串的控件?
解决方案:奇怪的是,只需要在 Binding 对象上启用“格式化”即可。(谢谢,乔恩斯基特):
奇怪的是,我的 MSDN 提到的关于这个参数(formattingEnabled)的所有内容都是:
"true 以格式化显示的数据;否则为 false"
它没有提到它是从控件返回数据的要求(在这些条件下)。
c# - 将双精度转换为字符串
我有三个双变量 a , b 和 c
所以 C 应该是 0.000001
我想在文本框中显示这个值,所以我写了
但它给出的结果为“1E-06”..
任何人都可以帮助我如何在文本框中输入正确的值吗?
谢谢