首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将vb DirectCast转换为c#

将vb DirectCast转换为c#
EN

Stack Overflow用户
提问于 2013-10-31 14:28:53
回答 1查看 4.4K关注 0票数 1

我正在将vb项目转换为c#;

除了这一行之外,一切都很好:

代码语言:javascript
复制
information = DirectCast(jsonserializer.Deserialize(jsonString, GetType(List(Of formData))), List(Of formData))

我创建了一个与vb相同的类(FormData),而json与vb相同。

代码语言:javascript
复制
    public class formData
{
    private string part;
    private string key;
    private string val;
    public formData(string part, string key, string val)
    {
        this.part = part;
        this.key = key;
        this.val = val;
    }

    public string Part
    {
        get { return part; }
        set { part = value; }
    }

    public string Key
    {
        get { return key; }
        set { key = value; }
    }

    public string Value
    {
        get { return val; }
        set { val = value; }
    }
}

我该怎么办?

我要用"http://json.codeplex.com/“吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-31 14:37:17

VB中的Directcast与C#中的类型相同。

所以,我相信你的代码会是这样的:

代码语言:javascript
复制
var jsonserializer = new JavaScriptSerializer();
var information = jsonserializer.Deserialize(jsonString, typeof(List<formData>)) as List<formData>;

代码语言:javascript
复制
var jsonserializer = new JavaScriptSerializer();
var information = (List<formData>)jsonserializer.Deserialize(jsonString, typeof(List<formData>));

两者的区别在于,如果强制转换失败,前者将返回null,而后者将抛出异常。在SO上,作为类型的类型和as之间有一个很好的讨论:

Difference between type cast and 'as' cast

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19709216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档