问题标签 [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.

0 投票
2 回答
1504 浏览

c# - C#:这是如何工作的:Unit myUnit = 5;

我刚刚注意到您可以在 C# 中执行此操作:

而不必这样做:

有谁知道我如何用自己的结构来实现这一点?我查看了带有反射器的 Unit 结构并注意到正在使用 TypeConverter 属性,但是在为我的结构创建自定义 TypeConverter 之后,我仍然无法让编译器允许这种方便的语法。

0 投票
8 回答
5089 浏览

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.

我的问题与此处找到的问题类似,但该解决方案并未解决我的问题:

更新:我找到了一个解决第一个问题的页面。我更新了上面的代码以显示我的修复。添加的代码是CanConvertToandConvertTo方法。现在我得到一个不同的错误。:

Object reference not set to an instance of an object.

此错误似乎是由ConvertTo方法中的某些内容间接引起的。

0 投票
6 回答
22731 浏览

c# - 转换为 int16、int32、int64 - 你怎么知道该选择哪一个?

我经常必须转换一个检索到的值(通常作为一个字符串) - 然后将它转换为一个 int。但是在 C# (.Net) 中,您必须选择 int16、int32 或 int64 - 当您不知道检索到的数字有多大时,您怎么知道该选择哪一个?

0 投票
1 回答
2098 浏览

.net - 如何在 Windows 窗体设置文件中存储枚举值?

我正在使用 Windows 窗体和 VS2008。我想在我的应用程序的设置文件中存储一个枚举值。

VS2008 中的设置编辑器只给了我一组有限的类型。令人惊讶的是,枚举似乎不是自动支持的这些类型之一 - 我是否正确理解这一点?

通过阅读该主题,似乎我可能需要编写一个 TypeConverter 类,以使我的枚举能够转换为字符串,反之亦然。我已经为我的枚举实现了这个,并将 TypeConverter 属性添加到我的枚举中,以指示要用于该枚举的转换器类。

但是,当我尝试在我的设置文件(在“选择类型”)对话框中指定它时,它只是说我的类型没有定义,所以我有点卡住了。

谁能向我解释如何将枚举存储在 Windows 窗体应用程序的设置文件中?这似乎是一个非常简单(并且通常需要)的功能,我很惊讶它还没有得到支持,而且我似乎必须做很多工作才能让它工作(而且只有一个枚举!)。

因此,我想我一定错过了一些东西,而且实际上真的很容易......

假设我的枚举如下所示:

...如何将此枚举中的值存储在我的设置文件中?(当然要检索它)。

(显然我可以只存储一个字符串或整数并自己解释,但这看起来很笨拙,我希望 Windows 窗体能够更干净地处理这类事情。)

0 投票
4 回答
1377 浏览

.net - 隐式运算符和 TypeConverters 是否等效?

在我看来,实现隐式运算符与 TypeConverter 相比非常容易,因此我假设它们不等效,因为 TypeConverters 在框架中很流行(请参阅任何扩展 FrameworkElement 的内容)。

但为什么?创建 string->object 和 object->string 隐式运算符并利用序列化中的那些(XML 和 XAML)不是更容易吗?

是雅格尼吗?单一责任?因为您不能在接口中指定运算符重载?

0 投票
1 回答
13317 浏览

c# - 通用转换功能似乎不适用于 Guid

我有以下代码:

的类型result.CurrentValue是字符串。我希望能够将其转换为 Guid,但我不断收到错误消息:

从 System.String 到 System.Guid 的无效转换

这与原始数据类型完美配合。
有什么方法可以使这项工作适用于非原始数据类型

0 投票
1 回答
1055 浏览

datetime - 如何使用 TypeConverters 将 System.Datetime 转换为自定义类型

出于某种原因,我需要将 aDateTime转换/转换为许多自定义对象之一

事实证明,以一种很好的通用方式很难做到这一点。

我正在考虑在 object 上实现扩展方法或扩展DateTimeConverter.

但是,处理这个问题的通用方法是什么,我有一个对象和一个目标类型,目前我正在使用System.ConvertTo(..),但这显然是有限的,因为它只支持转换为 .NET 类型并且不能扩展。

有任何想法吗?

0 投票
1 回答
2108 浏览

c# - 扩展一个 TypeConverter

DateTimeConverter 类提供 DateTime 和字符串之间的转换。我还想支持 DateTime 和 double 之间的转换。

根据 MSDN,我可以扩展 DateTimeConverter 类来执行此操作 - 请参阅MSDN DateTimeConverter

我创建了一个继承自 DateTimeConverter 并为 CanConvertTo、CanConvertFrom 等提供适当覆盖的类。

当调用以下代码时,如何确保框架使用我的 DateTime 转换器 (DateTimeConverterEx) 而不是 BCL (DateTimeConverter) 中提供的转换器?

谢谢。

0 投票
1 回答
9342 浏览

c# - 如何将自定义类型数据绑定到 TextBox.Text?

我有一个自定义的 c# 类型,比如(只是一个例子):

我希望它数据绑定到 TextBox.Text:

本质上,我需要为我的自定义值类型转换为字符串和从字符串转换。在文本框中,我想要“x, y, z”之类的内容,可以对其进行编辑以更新矢量类型。我假设我可以通过添加TypeConverter派生类来做到这一点:

并将其与我的结构相关联:

这似乎完成了一半的战斗。我可以看到MyVectorConverter被召唤,但有些不对劲。调用它看它是否知道如何转换为字符串,然后调用它转换为字符串。但是,永远不会查询它是否可以转换 FROM 字符串,也不会实际进行转换。此外,在文本框中进行编辑后,旧值立即被替换(另一个 CanConvertTo 和 ConvertTo 序列,恢复旧值)。最终结果是文本框中新键入的条目在应用后立即恢复。

我觉得好像只是缺少一些简单的东西。有没有?这整个项目/方法注定要失败吗?还有其他人尝试这种疯狂吗?如何将自定义的多部分类型双向绑定到基于字符串的控件?

解决方案:奇怪的是,只需要在 Binding 对象上启用“格式化”即可。(谢谢,乔恩斯基特):

奇怪的是,我的 MSDN 提到的关于这个参数(formattingEnabled)的所有内容都是:

"true 以格式化显示的数据;否则为 false"

它没有提到它是从控件返回数据的要求(在这些条件下)。

0 投票
2 回答
143135 浏览

c# - 将双精度转换为字符串

我有三个双变量 a , b 和 c

所以 C 应该是 0.000001

我想在文本框中显示这个值,所以我写了

但它给出的结果为“1E-06”..

任何人都可以帮助我如何在文本框中输入正确的值吗?

谢谢