小编Jas*_*wry的帖子

C#动态可能存在错误吗?

我遇到过在C#中使用动态变量的问题.这是在编写NancyFx路由模块时出现的,但我已将问题归结为下面的示例.虽然我在原始代码中收到了一个不同的例外,但示例代码仍然会抛出一个我认为是错误的异常.有没有人看到这里发生了什么,或有其他人遇到类似的问题?

请注意,以下帖子可能是相关的: StackOverflowException通过动态访问泛型类型的成员时:.NET/C#framework bug? System.Dynamic错误?

代码:

class Program
{
    static void Main(string[] args)
    {
        var dictionary = new Dictionary<string, object>();
        dictionary.Add("number", 12);
        var result = MethodUsesExplicitDeclaration(dictionary);
        var result2 = MethodUsesImplicitDeclaration(dictionary);
    }

    static dynamic MethodUsesExplicitDeclaration(dynamic reallyDictionary)
    {
        // this works, ostensibly because the local variable is explicitly declared
        IDictionary<string, object> dictionary = CastDictionary(reallyDictionary);
        return dictionary.Get<int>("number");
    }

    static dynamic MethodUsesImplicitDeclaration(dynamic reallyDictionary)
    {
        // this throws an exception, and the only difference is 
        // that the variable declaration is implicit
        var dictionary = …
Run Code Online (Sandbox Code Playgroud)

c# dynamic

5
推荐指数
1
解决办法
2283
查看次数

标签 统计

c# ×1

dynamic ×1